#include <stdio.h>
int foo(){
return 1;
}
int main(void) {
static int q = foo();
return 0;
}
ここに同じリンクがあります。これは C コードであり、C++ ではありません。C++ では正常にコンパイルおよび実行されますが、C では正常に実行されません。
このコードはコンパイル エラーが発生していました。誰かがエラーになる理由を説明できますか? 静的メンバーは定数値によってのみ初期化できますか? C++ では、宣言後に static メンバーを DEFINE する必要がありますが、なぜ C では必要ないのですか? 同様のクエリまたは適切な回答を持つスレッドが見つかりませんでした。