首页 > 解决方案 > 关于#if defined(宏名)的问题

问题描述

#if defined(_WIN32)
#if !defined(_CRT_SECURE_NO_WARNINGS)
#define _CRT_SECURE_NO_WARNINGS 
#endif

所以上面是某个项目文件中的前 4 行 C 语言代码。

我确实知道 #if defined (macro name) 意味着如果定义了宏,则表达式的值为 1,否则为 0。

所以基本上,前两行将是 1 或 0,但它们会做什么?1 还是 0 只是一个人坐着?

标签: cmacrosc-preprocessor

解决方案


它将defined()被评估为0or1并且从该值if将决定它是否应该进入正文。这就像正常的if陈述。


推荐阅读