在C中,为什么这条语句'i = 5i'编译并将'i'编译为零?
在GCC下面的C代码编译法正确在C中,为什么这条语句'i = 5i'编译并将'i'编译为零?
int i = 7;
i = 5i;
printf("%d", i);
而且prints- 0
,
陈述i = 5i
显然没有意义。那么为什么地球上的代码不会给出任何编译错误?为什么i
变成0
?
这是一个GCC extension for representing the imaginary component of complex numbers。
如果使用-pedantic
和-Werror
:http://ideone.com/PMlZr5进行编译,编译器会发出抱怨。
所以,这里'5i'的'i'被视为*虚数*?如果是这样,那么为什么用'j'替换'i'也会得到相同的结果? –
@MinhasKamal - 在链接到的文档页面上提及;) –
哦!我错过了'j'! –
虚数常量是GCC扩展 – BLUEPIXY