2425758776 发表于 2021-5-12 02:05:45

defind预处理命令问题

在小甲鱼老师的常量和宏定义的课后作业里第六道题目中:#define F(n) 2*n那么请问代码中 F(3+2) 的值等于多少?其中这个3是哪来的?我实在是摸不着头脑难道n=3吗?

wp231957 发表于 2021-5-12 06:40:35

当然是n=3了,这有啥问题吗

不争么 发表于 2021-5-12 10:48:46

#define F(n)2 * n
F(3+2) 所以 n = 3+2
所以为 2 * 3 + 2
你这个上面文字解释的很清楚啊

2425758776 发表于 2021-5-12 14:25:31

wp231957 发表于 2021-5-12 06:40
当然是n=3了,这有啥问题吗

只看代码哪写n=3了??

肖-肖 发表于 2021-5-12 14:57:47

2425758776 发表于 2021-5-12 14:25
只看代码哪写n=3了??

你要这么看:
上边的#define F(n) 2*n对应下边的
                      F(3+2)
上边的那个是宏定义,编译时进行预处理--》也就是进行替换 -->F后边的小括号中的内容进行对应
也就是n对应3+2但是 因为要处理替换为2*n所以后边对应处理为:2*3+2 了 是这样的

2425758776 发表于 2021-5-12 15:23:07

肖-肖 发表于 2021-5-12 14:57
你要这么看:
上边的#define F(n) 2*n对应下边的
                      F(3+2)


在查询c程序的设计语言之后得知原来f(n)括号内的n为参数,参数是可以替换的不影响宏定义{:5_109:}
页: [1]
查看完整版本: defind预处理命令问题