宏定义
本帖最后由 我的思维在跳跃 于 2015-3-11 14:25 编辑各位大神请求帮忙注释一下这两个对比的例子,实在是看不懂。学宏定义学晕了。
#include <stdio.h>
#define SQ(y) ( (y)*(y) ) // 这个位置宏定义SQ(y) 在下面替换的结果是什么?
int main()
{
int i = 1;
while(i <=5)
{
printf("%d\n", SQ(i++)); //这个位置的SQ 等价于什么? (i++)起到一个什么作用?循环+1的作用么?
}
return 0;
}
问题补充:
#include <stdio.h>
int main()
{
int i = 1;
int SQ(int y);
while(i <=5)
{
printf("%d\n", SQ(i++)); //如果把这个(i++)放在下面
//i++; 这样输出结果怎么变化那么大。????
}
return 0;
}
int SQ(int y)
{
return( (y) * (y) );
}
i++ ; 是自增运算, 目的是,为循环终止设定了条件(即避免死循环)
这个宏,可以把它看成:按文本形式替换,即把程序中出现的SQ(y)替换成:((y)*(y)) haiouda 发表于 2015-3-11 14:16
i++ ; 是自增运算, 目的是,为循环终止设定了条件(即避免死循环)
这个宏,可以把它看成:按文本形式 ...
大神我把问题从新补充了一下,麻烦你讲解详细一点好么。。。我这个理解能力有点差:cry 我的思维在跳跃 发表于 2015-3-11 14:26
大神我把问题从新补充了一下,麻烦你讲解详细一点好么。。。我这个理解能力有点差
首先我不是大神!
其次,现在我有点搞不清楚你是哪里不懂?
是 while 这个语句不懂,还是i++(自增运算)不懂,或者是,宏替换,换不明白;
如果以上都搞不清,建议你从第一集开始看小甲鱼的 C 语言 ;
因为:授人以鱼,不如授人以渔,望从零开始脚踏实地,共同进步 :handshake haiouda 发表于 2015-3-11 14:53
首先我不是大神!
其次,现在我有点搞不清楚你是哪里不懂?
是 while 这个语句不懂,还是i++(自增运 ...
宏替换没弄明白啊亲。。。 我的思维在跳跃 发表于 2015-3-11 15:32
宏替换没弄明白啊亲。。。
宏就是简单的替换呀;
例如:
# define se1989
就是把下面,出现 se ,的地方,都替换成 1989; 这就是宏呀
页:
[1]