のような単純なものをコンパイルするとき
inline int test() { return 3; }
int main()
{
test();
return 0;
}
を使用するとgcc -c test.c
、すべてがうまくいきます。-ansi
キーワードが追加された場合、、gcc -ansi -c test.c
エラーメッセージが表示されます
test.c:1:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
これは、C99標準が明示的に選択されている場合でも当てはまりますgcc -std=c99 -ansi -c test.c
。
これの理由は何ですか、そして推奨される修正はありますか?