有了#ifdef 为什么还需要#if defined
Posted 悄然拔尖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有了#ifdef 为什么还需要#if defined相关的知识,希望对你有一定的参考价值。
有了#ifdef 为什么还需要#if defined ?
#include <stdio.h> #define A #define B void test(int a,int b) { } int main(void) { #if 0 #ifdef A&&B test(printf("a\\n"),printf("b\\n")); #endif #endif #if defined(A)&&defined(B) test(printf("a\\n"),printf("b\\n")); #endif return 0; }
#if 0 注释掉之后:
可见,#ifdef虽然我们最常见也用得最多,可是#if defined(XXX)却可以有 &&,||,!,逻辑与,逻辑或,逻辑非等操作,而#ifdef却不支持这样的特性。
以上是关于有了#ifdef 为什么还需要#if defined的主要内容,如果未能解决你的问题,请参考以下文章
ifdef 中的布尔值:“#ifdef A && B”是不是与“#if defined(A) && defined(B)”相同?