2017-06-04 5 views
1

以下のCコードはCでは、なぜこのステートメント - 'i = 5i'がコンパイル& 'i'をゼロに設定するのですか? GCCで

int i = 7; 
i = 5i; 
printf("%d", i); 

そしてprints- 0 correctly-コンパイル。

i = 5iは明らかに意味がありません。それではなぜコードはコンパイルエラーをもたらさないのでしょうか?そして、なぜi0になるのですか?

+4

虚数定数はGCC拡張である – BLUEPIXY

答えて

7

GCC extension for representing the imaginary component of complex numbersです。

-pedantic-Werrorhttp://ideone.com/PMlZr5でコンパイルすると、コンパイラがエラーを発する。

+0

ここで、「i」は「5i」は* imaginary *として扱われていますか?もしそうなら、なぜ 'i'を' j'で置き換えるのも同じ結果をもたらしますか? –

+1

@MinhasKamal - リンク先のドキュメントページに記載されています; –

+0

ああ!私は 'j'を逃した! –

関連する問題