#Define宏错误

时间:2011-07-27 18:26:04

标签: c

我将此定义设置在顶部,并在调用时出现错误

/*-------------------__RETURN DEFINE-----------------*/
    #define __return(x) \
    pool_err= POOL_PUTSPACE_(i_exit_cb->Pool_addr,&l);\
    if ( pool_err != 0 )  \
     { exit(EXIT_FAILURE); } \
    return(x);
   /*---END OF __RETURN DEFINE-----*/

我得到如下错误(g是结构,csr_val是指定为短的值)

 __return(g->csr_val);
     Warning 86: argument 2 conflicts with formal definition

2 个答案:

答案 0 :(得分:2)

错误提到第二个(2)参数,唯一带有2个参数的函数调用是POOL_PUTSPACE_。我猜想&l可能需要演员。

答案 1 :(得分:1)

__开头的标识符保留供编译器使用。也许__return与内部定义的宏或函数冲突?