帮忙看下C语言中有关 define 的代码!!!
#define strerror(num) ((num)==0 ? "No error" : \
((num)>=sys_nerr ? "Unknown error" : sys_errlist[num]))
以前没这样写过,知道这是定义一个函数 strerror(num),这样不需要定义返回的数据类型吗? 为什么从第 1 行到 n - 1 行最后一个是 "\"?
[解决办法]
这不是定义函数,这是定义宏, 会在编译预处理的时候被后面的替换掉, \ 是宏定义中换行连接的,代表这行写不完下一行继续
[解决办法]
宏定义,? 号表达式嵌套,
if (((num)==0 ) 返回 "No error";
else
{
if ((num)>=sys_nerr) 返回"Unknown error";
else 返回 sys_errlist[num];
}
[解决办法]