呼び出しパラメーター

C 言語では、パラメーターは概念的にスタック経由で渡されます。パラメーター渡しには直接渡す方法と、ポインターで間接的に渡す方法があります。一方 COBOL では、4 バイトを超えるデータをスタック経由で直接渡すことはできません。C でも、構造体や共用体をスタック経由で渡す方法は不適切なプログラミング技法として認識されており、渡されるデータがポインターのサイズ (4 バイト) を超えると処理効率も低下してしまいます。通常は、この COBOL の制約が問題になることはありません。これは、Header-to-copy ユーティリティが、このようなコードを検出すると、引数を追加してスタックの整合性を維持するためです。

intcharpointer などの単純なデータ型は容易に COBOL のデータ型に変換できますHeader-to-copy ユーティリティは、このような型がスタック上のパラメーターとして直接渡されると、BY VALUE 句を生成します。C 言語では、パラメーターを間接的に渡す手段として型付きポインターを使用できます。COBOL でも間接渡しは可能ですが、1 段階までに限定されます。Header-to-copy ユーティリティは、このような型のポインターを検出すると、BY REFERENCE 句を生成します。