C语言里的符号常量可以是含有字母的表达式吗?比如 int n=1; #define A n+2 这

2022-08-11 社会 73阅读
#define是宏。
宏的本质是原样替换。
把#define A n+2 写在程序的开头,程序里凡事出现A的地方都替换为n+2。
这种写法很容易出现优先级错误,比如
A*A原意是(n+2)*(n+2)但是宏替换后的结果是:n+2*n+2即3n+2.
所以这里应该写成#define A (n+2)
注意这里的A不是符号常量。

定义符号常量建议是使用const关键字。
const int A = 1024;
这样A是常量,并且有类型。

很高兴为您解答,欢迎采纳,还有不懂的话可以追问^_^
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com