关于define中后面括号的问题
来源:互联网 发布:情义我心知的演员 编辑:程序博客网 时间:2024/05/01 08:28
我们会发现有一些这样的现象,有的有括号,有的没有括号
#define MAX (1024*1024)
#define MAX 1024*1024
一个有括号,另外一个没有括号
主要由两个原因可以解释:
1.防止歧义。这里的括号主要是起到了边界的作用。
2.编码风格统一
我们来看一下下面的程序
#include<stdio.h>
#include<stdlib.h>
#define A (2+3)
#define B 2+3
int main()
{
int m,n;
m=A*2;
n=B*2;
printf("m=%d,n=%d\n",m,n);
return 1;
}
程序运行结果
m=10,n=8
看到差别了没吗 m=(2+3)*2=10 而 n=2+2*2=8 我们在这里也可以更好理解宏定义只是一个替换符号而已。很显然,m=10是我们想要的结果。
我想通过上面的例子之后,大家一定会在编码中使用括号了吧
有些时候查了一天的错误发现是宏定义的错 人都快给气死了。。。所以我建议一般都加上括号会为以后的编码避免很多麻烦。
- 关于define中后面括号的问题
- 关于#define语句后面加括号与不加括号的区别
- 关于#define语句后面加括号与不加括号的区别
- js中关于事件处理函数名后面是否带括号的问题
- <转>js中关于事件处理函数名后面是否带括号的问题
- 函数后面的括号问题
- 关于word尾注格式中没有中括号的问题
- unix/LINUX 命令/函数 后面括号中数字的意思
- unix/LINUX 命令/函数 后面括号中数字的意思
- unix/LINUX 命令/函数 后面括号中数字的意思
- 关于shell脚本中双括号的问题
- js关于判断算式中括号匹配的问题
- define后面的\表示什么?
- man后面括号的含义
- 关于三扇门后面奖品的概率问题
- values()后面直接跟中括号
- 你不知道java问题if后面加不加括号的问题
- 在oc中[]中括号的使用,去掉小数点后面的零,字符串的比较
- (转)Deep Learning深度学习相关入门文章汇摘
- nginx 调试
- VLC中涉及到的复杂宏和变量的小结。
- Android AsyncTask与handler(别人的文章)
- 判断回文愚蠢版
- 关于define中后面括号的问题
- HDOJ 1874
- 第五堂课后作业
- HDOJ1021(找规律)
- JEECG v3视频陆续更新
- 推荐一本书---高质量c++/c编程指南
- What's SSL & TLS
- 杭电2007
- I/O 完成端口( Windows核心编程 )