gpt4 book ai didi

c - 一行#if语句

转载 作者:太空宇宙 更新时间:2023-11-04 05:52:19 27 4
gpt4 key购买 nike

我有一个包含大量定义的配置文件,用于在编译期间包含模块。此外,这意味着我必须经常检查代码内部的定义。每张支票需要 3 行,是否可以在一行中执行此操作。

#if FUNC_ENABLED
function_optional_call();
#endif

我正在寻找类似的东西。

CALL(function_optional_call(),FUNC_ENABLED);

是否有可能这样做,或者我是否必须使用 3 行表达式。我知道可以为每个 makro 定义一个 makro。

Skip function call if not defined

但是是否有可能生成一个通用的宏。

最佳答案

#if FUNC_ENABLED
function_optional_call();
#endif

是编写编译器开关的规范方式。它清晰,可读,每个程序员都明白它的作用。

现在这段代码:

CALL(function_optional_call(),FUNC_ENABLED);

是完全神秘的。目前还不清楚它是做什么用的,为什么会有宏……它甚至看起来都不像有效的 C。

因此,第一种形式远远优于后者,后者只是丑陋的不良做法。所以不要试图将前者重写成后者。


如果您担心一遍又一遍地重复同一行,那么问题似乎是编译器开关的位置不正确。而是将其放在函数中。或者,如果您无法修改该功能,请制作一个包装器。

关于c - 一行#if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37319253/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com