我用的是宏,我觉得它很好-
#define CStrNullLastNL(str) {char* nl=strrchr(str,'\n'); if(nl){*nl=0;}}
因此,它可以将字符串中的最后一个换行符归零,实际上,它是用来在被fget打开时切断行符的。
所以,我想知道我是否可以从宏中“return”一个值,因此它可以被称为
func( CStrNullLastNL( cstr ) ) ;
或者我需要写一个函数
发布于 2018-05-02 17:06:50
宏要“返回值”,宏本身必须是表达式。宏是语句块,不能计算为表达式。
你真该写个inline
功能。它将同样快速和更易于维护。
发布于 2018-05-02 17:40:37
#define CStrNullLastNL(str) ({ \
char* nl=strrchr(str,'\n');\
if(nl){*nl=0;} \
nl; \
})
https://stackoverflow.com/questions/-100008327
复制相似问题