读书人

为什么#define square(x) x*x有异常

发布时间: 2012-06-10 14:03:15 作者: rapoo

为什么#define square(x) x*x有错误
C语言

#include <stdio.h>/*一个简单の乘方计算器*/
#define square(x) x*x
main(){
char input; int n;
n=0;
input=getchar();
while (input>='0' && input<='9')
{n=10*n+input-'0';
input=getchar();}

接下来最后一行分叉了:

正确的时候:printf("%d", square(n));}
错误的时候:printf("%d", square(n+1));}

为什么在正确的时候输入12,可以正确得出结果144
而改为square(n+1)的时候,却不是现实13的平方169,而是显示了25?

…………………………………………………………

另外一个问题,

如果某一个分支函数,比如 void abc(int x,y,z)

我在定义它时,头前面加的void,到底意思是:

1.abc(int x,y,z)函数不给主函数返回函数值

还是:
2.abc(int x,y,z)函数会给主函数返回一个值,只不过在定义之时不注明这个值的类型



[解决办法]
宏定义 改为 ((x)*(x))
另一个问题 你确定 void abc(int x,y,z)中y,z是没有类型的? 找你的说法选1

读书人网 >C语言

热点推荐