Cのプログラミングについて詳しくお読みください。
コンパイル時にすべての警告とデバッグを有効にする必要があります。 GCCの場合、これは少なくともgcc -Wall -Wextra -g
(Linuxの場合)を意味します。
gcc -Wall -Wextra -g john.c -o john
でコンパイルする場合
私は次の警告を取得しています:
john.c: In function ‘main’:
john.c:4:5: warning: implicit declaration of function ‘printf’ [-Wimplicit-function-declaration]
john.c:4:5: warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]
john.c:4:5: warning: format ‘%d’ expects a matching ‘int’ argument [-Wformat]
john.c:3:9: warning: unused variable ‘myInt’ [-Wunused-variable]
ので補正が簡単です:警告なしでコンパイルさ
/* file john.c */
#include <stdio.h>
int main(void)
{
int myInt = 5;
printf("myInt = %d\n", myInt);
return 0;
}
。
printf
フォーマット文字列の末尾に\n
があることに注意してください。大事です。
常にコンパイラがあなたにを与えることができるすべての警告を有効にし、コンパイラを信頼するので、警告が表示されなくなるまでコードを修正してください。
デバッガ(Linuxではgdb
など)を使用する方法を学ぶ。
あなたが観察された行動は、未定義の動作です。 何かは、標準準拠の実装のC(爆発の場合もあります)で発生する可能性があります。
ハッピーハッキング。
があなたの 'のprintf()'自分自身を呼び出して尋ねるで詳しく見てみましょう、どのように印刷したい値どの知っているのですか? – FatalError
は、プロトタイプの関連部分がドット:) 'int型のprintf(定数するchar * fmtは、...)である;' – pmg
あなたがプログラミングを理解する必要がどのようなことは、コンピュータが魔法ないと、インテリジェントではないということです。 **あなたがそれを言うだけです**。 'myInt'を出力するよう' printf'に指示しないと、どの番号を印刷すると思いますか?あなたのプログラムに2つの 'int'があった場合、どちらを印刷するのですか? – Shahbaz