e233.c

以前の外部宣言の型と違う

int     main()
{ 
        /* 先に使って */
        func() ;
        return(0) ;	
}
/* 後で定義するとエラーになります */
char  * func()
{ 
        return("");
}


解説 関数宣言を行わずに関数を使用した場合, コンパイラは暗黙的に その関数を「int を返す関数」として認識します。 そのため,実際に定義している場所で 「暗黙的に宣言した関数と型が違いますよ」と いう警告を出すわけです。
対策: 関数を使用する前に必ずプロトタイプ宣言を行いましょう。 C-FAQ 1.25J C-FAQ 1.25E を参照して下さい。