如何将宏作为参数传递给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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
