extern
次のコードでキーワードを使用する必要があるのはなぜですか。
header.h
float kFloat; // some say I should write 'extern float kFloat;', but why?
file.c
#include <stdio.h>
#include "Header.h"
float kFloat = 11.0f;
main.c
#include <stdio.h>
#include "Header.h"
int main(int argc, const char * argv[])
{
printf("The global var is %.1f\n", kFloat);
return 0;
}
このコードは機能します。グローバル変数 kFloat のデフォルトは、外部リンケージと静的ライフタイムです。
出力は次のとおりです。
グローバル変数は 11.0 です
どのような場合に問題が発生するのかわかりません。クラッシュする例を誰か教えてもらえますか?