普段ほとんどCOBOLには触らないCOBOL初心者です。暇つぶしに業務のCOBOLソースを読んでいたら下記のような記述があったのですが、REFERENCEとVALUEが何を意味しているのかよくわかりません。
CALL "abc" USING AAA
REFERENCE BBB
VALUE CCC
http://www.tsh-world.co.jp/sp/support/manual/V70 …
上のサイトなどで調べたところ、CALL文にはBY REFERENCEやBY VALUEなどが続く事があるようですが、それとは微妙に異なる気がします。それはBY REFERENCEは参照渡し、BY VALUEは値渡しを指定しているという認識ですので、2つを同時に指定するのはありえないという考えからです(BYの記述がないのも気になりますが)。
何かわかる方おりましたらご教示お願いします。
情報が足りなければ、その旨書いて頂ければ補足いたします。(といっても手元にソースがなかったり)
No.2ベストアンサー
- 回答日時:
COBOLの文法をよく読んでください。
>2つを同時に指定するのはありえないという考えからです
引数毎にBY REFERENCE、BY VALUEが指定できます。
>CALL "abc" USING AAA
>REFERENCE BBB
>VALUE CCC
引数がAAA、BBB、CCCの3個で、
AAAはBY句が省略されているので、BY REFERENCE
BBBはREFERENCEなので、BY REFERENCE
CCCはVALUEなので、BY VALUE
です。
マニュアル読めばすぐに分かること。
参考URL:http://software.fujitsu.com/jp/manual/manualfile …
引数ごとに渡し方を指定しているというところが盲点でした。マニュアルはななめ読みぐらいはしたのですが、色々と不明点や思い込みがあり、理解が及びませんでした。適切な回答をいただきとても助かりました。ありがとうございます。
No.1
- 回答日時:
JIS を確認できていないのでちょっとアレなところがありますが....
COBOL には「文法上書かなければならない語句」と「省略してもかまわない語句」とがあります. ここでの BY は「省略してもかまわない語句」であり, 従って BY REFERENCE と REFERENCE とは同義 (VALUE と BY VALUE も同義) です.
今の場合引数は AAA, BBB, CCC の 3つで AAA は省略時解釈による渡し方 (なんだろ? BY REFERENCE かな?), BBB は BY REFERENCE, CCC は BY VALUE で渡すことになります.
参考URL:http://www16.plala.or.jp/hiyokogumi/dic/a_call.h …
BYは省略してもよかったんですね。それとお恥ずかしい話ですが引数を複数渡しているという発想がありませんでした。。。とてもためになりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- その他(ブラウザ) python から COBOL を呼び出すことは可能でしょうか。 1 2023/04/21 21:03
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
aspファイルを修正する方法
-
画像と文字が重なって表示される。
-
ホームページのソースが横長に...
-
htmlのタブの色変更について
-
Visual Source Safe?
-
jsファイルの中身を確認したい…
-
実行オブジェクトからソースを...
-
ポップアップを1日1回だけ表示...
-
ツリー掲示板
-
レストラン、英語のメニュー表記
-
JSPの実行結果をHTMLに変換
-
プログラム時のヘッダコメント...
-
Dreamweaverのコードカラーが黒...
-
HTMLソースを他人に見られない...
-
phpとaspの違い? 実力の違い?
-
HTML CSS覚えるコツはありますか?
-
VBAで#Regionに変わるものは無...
-
ホームページビルダーのソース...
-
ソースの追加行数と変更行数
-
ARPツール
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlソース文の 各行 改行位置...
-
VBAで#Regionに変わるものは無...
-
レストラン、英語のメニュー表記
-
Dreamweaverのコードカラーが黒...
-
プログラム時のヘッダコメント...
-
【VC++6.0(MFC)】Access Violat...
-
#ifdef多用でソースが見づらい
-
ソースの追加行数と変更行数
-
ソースの表示を無効にする方法。
-
画像と文字が重なって表示される。
-
JSPの実行結果をHTMLに変換
-
Visual Source Safe?
-
コメントが閉じてないというエ...
-
HTMLソースの文字コードがutfの...
-
ポップアップを1日1回だけ表示...
-
「MicrosoftVisualBasic6.0 行...
-
c言語の改修されたソースから改...
-
htmlのタブの色変更について
-
DreamWeaver 文字列を含まない...
-
IEでテキストの文字が一部だけ...
おすすめ情報