c++中,宏定义和调用函数同时存在,主函数运行哪个?

如题所述

看主函数调用了哪个呀,调用宏,就运行宏,调用子函数,就运行子函数,2个都调用的话,就都运行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-21
如果宏与调用函数重名了的话,这种情况编译无法通过。
你始终记住宏实际上就是在编译的时候进行替换,不管宏与函数是否同时存在,反正你把宏定义的那个名字在所有出现的地方替换进去看看是否是正确的就知道了。
比如你定义
#define max(a, b) ((a) > (b) ? (a): (b))
再来
int max(int a, int b)
{
return a < b ? a : b;
}
那么就是
int ((int a) > (int b) ? (int a): (int b)){
return a < b ? a : b;
}
自己很容易判断这个肯定编译不过了。
相似回答