【发布时间】:2013-08-26 07:42:50
【问题描述】:
我需要在 C 中编写宏而不是函数
函数如下:
void FSTATUS(int stat,char msg[])
{
if(stat != 0)
{
EMH_ask_error_text(stat, &msg);
printf("Error : \"%d\",\"%s\"\n",stat,msg);
}
else
printf("\n -------- %s -------- \n",msg);
}
由于如何在宏中使用 if 语句的示例非常少,因此我被困在这部分中,我无法弄清楚如何将其转换为宏。任何人都可以帮我解决上面的代码。
解决方案:
我使用内联函数而不是宏
【问题讨论】:
-
是什么让你觉得这需要一个宏???
-
我需要将其作为宏调用以减少编译时间
-
哦,你不会减少编译时间,如果你使用宏,你可以增加它。请记住,宏在编译之前会扩展到您的源代码中。
-
为什么不简单地使用
inline? -
嘿内联也是一个不错的选择!谢谢@perror!