gpt4 book ai didi

c - #if defined MACRO 是否等同于#ifdef MACRO?

转载 作者:太空狗 更新时间:2023-10-29 16:33:15 28 4
gpt4 key购买 nike

我的代码需要两种模式,debugverbose。我在头文件中将它们定义为,

#define verbose TRUE
#define debug TRUE

到目前为止,在我的代码中,我一直在使用

#if(debug)
//code
#endif

但它更适合使用吗?

#ifdef debug
// code
#endif

我读了一些关于预处理器宏的内容,但当时没有任何意义。所以,我有一个问题:#if defined MACRO是否等同于#ifdef MACRO?哪个更适合启用/禁用特定代码段?

最佳答案

#ifdef MACRO
#if defined (MACRO)

会做同样的事情。然而,定义的 (MACRO) 只是在#if 内部计算为 0 或 1 的表达式,它可以与其他表达式组合。例如

#if defined (MACRO) && ! defined (MACRO2)
// Do this
#else
// Do that
#endif

尝试使用#ifdef 来实现——除非您的代码变得非常笨拙,否则您做不到。

关于c - #if defined MACRO 是否等同于#ifdef MACRO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39290019/

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