如何将宏作为参数传递给C函数?
发布时间:2020-12-16 10:25:46 所属栏目:百科 来源:网络整理
导读:我想在宏函数中传递宏作为参数,我不知道是否可能. 我想看看这个操作,例如: 我有这些宏: #define PRODUCT(A,B) ((A) * (B)) #define SUM(A,B) ((A) + (B)) 然后我有以下签名的此功能: int just_a_function(int x,MACRO_AS_PARAMATER_HERE); 然后我想调用这
我想在宏函数中传递宏作为参数,我不知道是否可能.
我想看看这个操作,例如: 我有这些宏: #define PRODUCT(A,B) ((A) * (B)) #define SUM(A,B) ((A) + (B)) 然后我有以下签名的此功能: int just_a_function(int x,MACRO_AS_PARAMATER_HERE); 然后我想调用这个函数,如: just_a_function(10,SUM); 可能吗? 谢谢 解决方法
你不能这样做.
改为使用普通函数: int sum(int x,int y) { return x+y; } //... just_another_function(10,sum); 注意:just_another_function必须接受int(*)(int,int)作为第二个参数. typedef int (*TwoArgsFunction)(int,int); int just_another_function(int x,TwoArgsFunction fun); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |