首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问个C语言的有关问题

2012-07-30 
请教个C语言的问题C/C++ codeint LEFT(int i){return 2i+1 // 这里本来是 2*i+1 ,被我误写成了2i+1 gcc

请教个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)

热点排行