int main()
{
extern long long a;
a=100000000000; //10 raised to power 11
printf("%lld",a);
return 0;
}
int a;
出力: 100000000000
int a は変数 a に 4 バイトを割り当てる定義を意味しますが、extern long long a は変数の型を指定する宣言であり、メモリ割り当てとは関係ありません。したがって、値 10^11 を a(4 バイトの大きさ) に代入すると、オーバーフローが発生するのではないでしょうか?