![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
普段ほとんど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ランキング
-
ソースの表示を無効にする方法。
-
【VC++6.0(MFC)】Access Violat...
-
VisualStudio2010でデバッグソ...
-
Visual Source Safe?
-
レストラン、英語のメニュー表記
-
VBAでhtmlソースから特定の文字...
-
文字化けについて
-
細線化について‥
-
#ifdef多用でソースが見づらい
-
htmlファイルがソースで表示される
-
ポップアップを1日1回だけ表示...
-
C/C++ をHTML変換するツールを...
-
JAVAのアプレットについて(超...
-
thickboxで画像をゆっくり表示
-
HTMLソースの文字コードがutfの...
-
generatorとは?
-
VC++でマイクを使いたいんですが……
-
VBAで#Regionに変わるものは無...
-
ListBoxの最大表示項目数について
-
プログラムについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レストラン、英語のメニュー表記
-
VBAで#Regionに変わるものは無...
-
Dreamweaverのコードカラーが黒...
-
ソースの追加行数と変更行数
-
#ifdef多用でソースが見づらい
-
JSPの実行結果をHTMLに変換
-
VBAでhtmlソースから特定の文字...
-
画像と文字が重なって表示される。
-
VB詳しい方
-
「MicrosoftVisualBasic6.0 行...
-
ソースの表示を無効にする方法。
-
htmlのタブの色変更について
-
【VB.NET】WebページのDOMソー...
-
c言語の改修されたソースから改...
-
Visual Source Safe?
-
VisualStudio2010でデバッグソ...
-
COBOLのCALL文について
-
google Map APIの使い方
-
HTMLのソースを文字化けさせる...
-
phpとaspの違い? 実力の違い?
おすすめ情報