私はZed ShawのLearn C The Hard Wayを開始しています。 XCodeとコマンドラインツールをダウンロードしました。私は非常に最初のプログラムのコンパイル時にでも:GCC警告:C99で関数 'puts'の暗黙の宣言が無効です
int main(int argc, char *argv[]) {
puts("Hello world.");
return 0;
}
を私はこの警告を受ける:
ex1.c:2:1:警告:関数 'プット' の暗黙の宣言はC99 で無効 あります[-Wimplicit-function-declaration]
プログラムは正しくコンパイルされて実行されます。
私はOSX 10.8.3を使用しています。 'gcc -v'
と入力すると、
ビルトイン仕様を使用します。ターゲット:i686-apple-darwin11で構成されます。 /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/src/configure - 無効化可能 - 検査可能 - エラー - プレフィックス= /アプリケーション/ Xcode.app /Contents/Developer/usr/llvm-gcc-4.2 --mandir =/share/man --enable-languages = c、objc、C++、obj-C++ --program-prefix = llvm- --program-transform-name =/^ [cg] [^ .-] * $/s/$/- 4.2/--with-slibdir =/usr/lib --build = i686-apple-darwin11 --enable-llvm =/private/var /tmp/llvmgcc42/llvmgcc42-2336.11~182/dst-llvmCore/Developer/usr/local --program-prefix = i686-apple-darwin11- --host = x86_64-apple-darwin11 --target = i686-apple- darwin11 --with-GXX-含ま-dirを=は/ usr /含める/ C++/4.2.1スレッドモデル:POSIXのgccのバージョン4.2.1(アップル社に基づきが5658を構築)(LLVM 2336.11.00を構築)
助けてください。
引数が使用されていないときに 'int main(int argc、char * argv [])'を使用すると、やや愚かです。それは 'int main(void)'または 'int main()'でなくてはなりません。しかし、これは別の日の議論かもしれません。 GCC 5.xはデフォルトのコンパイルモードとしてC11( '-std = gnu11')を使用していることに注意してください。 'clang'(' gcc'と偽った)はC99を使います。 C99とC11の両方とも、(main()を除く)すべての関数を使用する前に宣言する必要があります。 –