これは修正する問題ではありませんかsomething.Justは行動ここ変数varが参照されないのはなぜですか?
#include <stdio.h>
extern int var;
int main()
{
var = 10;
printf("%d ", var);
return 0;
}
我々はvar
がextern
ようとvar
は、定義を与えられたmain()
関数の内部で定義されていたことがわかりますに知ってほしいです。 var
が出力されたとき、しかし、それはエラーにvar
へ
未定義の参照を与えました。
次に、値10
はどこに行きますか?それはextern var
に行きますか、それともガーベッジメモリの場所に保存されますか?
だから、正確にラインvar =10
し、次の行でコンパイル時に何が起こりますか。
コンパイルログ:あなたのコードで
Compilation error time: 0 memory: 2156 signal:0
/home/PpnviQ/ccRtZapf.o: In function `main':
prog.c:(.text.startup+0x13): undefined reference to `var'
collect2: error: ld returned 1 exit status
'var'はコードに定義されていません。ちょうど宣言しました。 – Olaf
@Olafまさに '' 'VAR = 10'''手段、それは望ましい行動、特定の問題やエラーが含まれている必要があり、デバッグの助けを(「なぜこのコードは動作していない?」)を探している –
質問を定義する平均does'nt質問自体の中でそれを再現するのに必要な最短のコードです。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:最小、完全、および検証可能な例を作成する方法。 – Olaf