首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何让宏'return'一个值?

如何让宏'return'一个值?
EN

Stack Overflow用户
提问于 2018-05-02 08:10:51
回答 2查看 0关注 0票数 0

我用的是宏,我觉得它很好-

代码语言:txt
复制
#define CStrNullLastNL(str) {char* nl=strrchr(str,'\n'); if(nl){*nl=0;}}

因此,它可以将字符串中的最后一个换行符归零,实际上,它是用来在被fget打开时切断行符的。

所以,我想知道我是否可以从宏中“return”一个值,因此它可以被称为

代码语言:txt
复制
func( CStrNullLastNL( cstr ) ) ;

或者我需要写一个函数

EN

回答 2

Stack Overflow用户

发布于 2018-05-02 17:06:50

宏要“返回值”,宏本身必须是表达式。宏是语句块,不能计算为表达式。

你真该写个inline功能。它将同样快速和更易于维护。

票数 0
EN

Stack Overflow用户

发布于 2018-05-02 17:40:37

代码语言:txt
复制
#define CStrNullLastNL(str) ({ \
    char* nl=strrchr(str,'\n');\
    if(nl){*nl=0;} \
    nl; \
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档