c++ - #ifdef VALUE 与 #if defined (VALUE) 有什么区别
问题描述
#include<stdio.h>
#define MAX 0
int main()
{
#ifdef MAX
printf("MAX defined");
#endif
#if defined (MAX)
printf("MAX is defined");
#endif
return 0;
}
#ifdef
和都#if defined
给出相同的效果,那么它们之间有什么区别?如果你看过这些指令的反汇编代码,我还没有看到,那么请尝试解释一下。
解决方案
差异是历史性的。原本只有#ifdef
. 较新的语法更灵活,允许将测试与逻辑条件结合起来,但在简单的形式中,您可以互换使用它们。
推荐阅读
- python - Python Pandas 列绘图的累积总和
- powershell - Powershell - 如何使用“WindowsInstaller.Installer”在 MSI 中插入属性值 - REBOOT = Force
- php - 如何从 PHP 数组中存在的表格元素中获取特定的单元格值。这可能吗?
- python - 如何使用 Selenium 和多处理更快地进行网页抓取?
- elm - 具有可组合形式的动态形式
- karate - 从空手道中的外部 json 文件创建动态请求正文的问题
- javascript - 开玩笑地忽略一个被拒绝的即发即弃的承诺
- asp-classic - 带有 Base64 类型十六进制的经典 ASP
- odoo - 当 type="json" 时,Odoo 控制器避免使用 json-rpc
- macos - IODisplayConnect 在 Apple Silicon 的 Big Sur 中消失了,取而代之的是什么?