读书人

请问个C语言的有关问题

发布时间: 2012-07-30 16:19:05 作者: rapoo

请教个C语言的问题

C/C++ code
int LEFT(int i){    return 2i+1; // 这里本来是 2*i+1 ,被我误写成了2i+1; gcc编译通过了,求个解释。                 //以为是跟ul 整数的后缀,没找到后缀是i的整数。}


C/C++ code
#include <stdio.h>int LEFT(int i){    return 2i+1;}int main(){    printf("%d\n",LEFT(49));}[root@localhost soft]# gcc left.c [root@localhost soft]# ./a.out 1[root@localhost soft]# 


[解决办法]
探讨

引用:

没啥好说的,这是gcc的bug。


++

[解决办法]
#include <stdio.h>
#include <stdlib.h>
#include <complex.h>
_Complex func1(int i)
{
return 2*i+1; //i是形参变量,表达式的值仅是实部,返回值的虚部为0
}
_Complex func2(int i)
{
return 2i+1; //不必包含<complex.h>,i是虚部常量的后缀,1是实部常量
}
_Complex func3(int i)
{
return 2*I+1;//必须包含<complex.h>,I是在那里定义的,表示虚部
}
int main(int argc, char *argv[])
{
printf("(%f,%f)\n ",func1(11));
printf("(%f,%f)\n ",func2(11));
printf("(%f,%f)\n ",func3(11));
system("PAUSE");
return 0;
}
==================================
结果是
(23.0, 0.0)
(1.0, 2.0)
(1.0, 2.0)

读书人网 >C语言

热点推荐