函数名被小括号括住是什么意思,是不是解除相同的宏定义

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/09 05:50:56

函数名被小括号括住是什么意思,是不是解除相同的宏定义
函数名被小括号括住是什么意思,是不是解除相同的宏定义

函数名被小括号括住是什么意思,是不是解除相同的宏定义
有两种作用:
1)在调用函数时防止宏扩展
例如:
#define max(a,b) (a > b) a :b
int max(int a,int b) {
return ((a > b) a :b);
}
则代码中的max(a,b)会扩展成宏
而(max)(a,b)会调用函数
2)在定义函数时防止宏扩展
例如:
#define getMaxNum() 10
int (getMaxNum)() {
return (10);
}
如果在定义函数时没有小括号,那么就变成了:
int 10{ 这句没有意义