C++中 #define定义的宏能不能重载

比如:
#define dat 123
#define dat(i) (i) * 123

能这样重载吗?

不可以

例如加入宏定义

#define INVOKE(f)  f(1)

那么 INVOKE(dat) 的结果是123(1)还是(1)*123呢?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-15
宏不能重载。函数才可以重载,而宏不是函数。
第2个回答  2014-01-15
不清楚,但是C++的编译环境应该是可以重载的。
相似回答