-qgenproto

C のみ

説明

K&R 関数定義から ANSI プロトタイプを生成する。 これにより、K&R から ANSI への遷移が容易になります。

構文

構文図を読む構文図をスキップする        .-nogenproto-----------------.
>>- -q--+-genproto--+--------------+-+-------------------------><
                    '-=--parmnames-'
 

parmnames なしで -qgenproto を使用すると、パラメーター名なしでプロトタイプが生成されます。パラメーターは、parmnames が指定されたときにプロトタイプに組み込まれます。

以下の関数 foo.c について、

foo(a,b,c)
  float a;
  int *b;
  int c;

以下のように指定すると、

xlc -c -qgenproto foo.c

以下が生成されます。

int foo(double, int*, int);

パラメーター名は除去されます。 一方、以下にように指定すると、

xlc -c -qgenproto=parmnames foo.c

以下が生成されます。

int foo(double a, int* b, int c);

この場合、パラメーター名は保持されます。

K&R 関数に渡される前にすべての狭い型の引数 (charshortfloat など) が拡張されることが ANSI に規定されているため、float a は、プロトタイプでは double または double a として表されるので注意してください。

関連情報