e195.c

期待する引数が来ない
/*###8 [cc] 警告: CBC:e195(1): おそらく期待する引数は来ないでしょう .%%%*/
/*###8 [cc] 警告: CBC:e195(2): この定義の有効範囲はここだけです%%%*/
/*###8 [cc] 警告: CBC:e195(3): 関数の引数部でstruct stagを定義%%%*/

修正前

/* 構造体のポインタを使用した後に、*/ void bad(struct uso800*); /* 構造体を定義する。 */ struct uso800 { int a ; int b ; int c ; int d ; } ;

修正案1

/* 構造体を定義した後に、 */ struct iso800 { int a ; int b ; int c ; int d ; } ; /* 構造体のポインタを使用 */ void good(struct iso800*);

修正案2

/* 一見、無意味な記述を入れる */ struct iso800 ; void good(struct iso800*);

解説 コンパイラが、 構造体の形を知る前に、 構造体のポインタを使用すると、 K&Rのコンパイラでは、警告は出ませんでしたが、 ANISのコンパイラでは、警告が出ます。 詳細は、 『プログラミング言語C 第2版 ANSI規格準拠 カーニハン リッチー著/石田晴久訳』 「付録A8.3 構造体と共用体の宣言」Page262C-FAQ 11.5J C-FAQ 11.5E を参照して下さい。