所以我有这样的代码:
#ifdef FEATURE
void foo(void);
#endif //#ifdef FEATURE
main {
#ifdef FEATURE
foo();
#endif //FEATURE
}我只是想知道写这篇文章会不会更优雅。我在考虑做这样的事情
#ifdef FEATURE
void foo(void);
#else
static inline foo() {
}
#endif //#ifdef FEATURE这样一来,编译器就应该删除掉其中的那部分代码,并保持主代码的整洁。只是想知道有没有更好的解决方案?
发布于 2020-07-11 07:06:12
你可以这样做:
#ifdef FEATURE
void foo (void) { }
#else
#define foo()
#endif //#ifdef FEATURE
int main () {
foo();
return 0;
}发布于 2020-07-11 07:53:22
如果有更好的解决方案呢?
不是的。解决方案非常好,不需要更好的解决方案。
有些人更喜欢去掉inline说明符,因为它只是对编译器和static void foo(void) {}的一个提示。(但是inline说明符使gcc上的-Wunused-function警告静默,所以我会说使用它)。
https://stackoverflow.com/questions/62843331
复制相似问题