首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将函数转换为noop

将函数转换为noop
EN

Stack Overflow用户
提问于 2020-07-11 06:50:25
回答 2查看 56关注 0票数 1

所以我有这样的代码:

代码语言:javascript
复制
#ifdef FEATURE 
void foo(void);
#endif //#ifdef FEATURE
main {
    #ifdef FEATURE
    foo();
    #endif //FEATURE
}

我只是想知道写这篇文章会不会更优雅。我在考虑做这样的事情

代码语言:javascript
复制
#ifdef FEATURE 
void foo(void);
#else 
static inline foo() {
}
#endif //#ifdef FEATURE

这样一来,编译器就应该删除掉其中的那部分代码,并保持主代码的整洁。只是想知道有没有更好的解决方案?

EN

回答 2

Stack Overflow用户

发布于 2020-07-11 07:06:12

你可以这样做:

代码语言:javascript
复制
#ifdef FEATURE 
void foo (void) {  }
#else
#define foo()
#endif //#ifdef FEATURE

int main () {
    foo();
    return 0;
}
票数 0
EN

Stack Overflow用户

发布于 2020-07-11 07:53:22

如果有更好的解决方案呢?

不是的。解决方案非常好,不需要更好的解决方案。

有些人更喜欢去掉inline说明符,因为它只是对编译器和static void foo(void) {}的一个提示。(但是inline说明符使gcc上的-Wunused-function警告静默,所以我会说使用它)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62843331

复制
相关文章

相似问题

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