#ifdef和#if defined

#ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件
你要判断单个宏是否定义时#ifdef 和 #if defined 效果是一样的,但是当你要判断复杂的条件时,只能用 #if
 
时间: 2024-10-05 10:55:10

#ifdef和#if defined的相关文章

#ifdef 和 #if defined 的区别 -- 转

#ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件,比如 #if defined (AAA) && defined (BBB) xxxxxxxxx #endif #if defined (AAA) || VERSION > 12 xxxxxxxxx #endif 而#ifdef 就不能用上面的用法,也就是说,当你要判断单个宏是否定义时 #ifdef 和 #if defined 效果是一样的,但是当你要判断复杂的条件时,只能用 #if defined

#ifdef和#if defined的差别

注意两者都有个define的作用,区别在于使用方式上.前者的通常用法是:#ifdef  XXX .... #else .... #endif 只能在两者中选择是否有定义.对于后者,常用法是: #if defined xxx1 .... #elif defined xxx2 .... #elif defined xxx3 .... #endif 可以在多个中选择是否有定义. #ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件,比如 #if defined (AAA)

C++ #if #endif #define #ifdef #ifndef #if defined #if !defined详解

首先,让我们先从头文件开始,在很多头文件里,我们会看到这样的语句 #ifndef _MYHEADFILE_H #define _MYHEADFILE_H // .......语句...... #endif // _MYHEADFILE_H 为了避免同一个文件被include多次,我们常使用 #ifndef 进行判断,如果没有包含 _MYHEADFILE_H , 则使用#define 来定义一个宏 _MYHEADFILE_H , #endif 与#ifndef 首尾呼应,表示结束. 说到这里,我们

(五)c语言条件编译#ifdef与#if defined

c语言条件编译#ifdef与#if defined defined NAME是用来判断NAME是否被定义了(被用define定义了). #ifdef NAME == #if defined(NAME) #ifndef NAME == #if !defined(NAME) 但是在处理双重和多重判断时,defined的优势就显示出来了 #ifdef NAME1 #ifdef NAME2 ...... #endif #endif 可以写成 #if defined(NAME1) && define

#ifdef、#if defined、#ifndef的使用

1.#ifdef和#if defined 注意两者都有个define的作用,区别在于使用方式上.前者的通常用法是: #ifdef  X .... #else .... #endif 只能在两者中选择是否有定义.对于后者,常用法是: #if defined x1 .... #elif defined x2 .... #elif defined x3 .... #endif 可以在多个中选择是否有定义. 2.#ifndef的使用方法 这是 //if not defined的简写,是宏定义的一种,它是

C开发之----#if、#ifdef、#if defined之间的区别

#if的使用说明 #if的后面接的是表达式 #if (MAX==10)||(MAX==20) code... #endif 它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!) #if defined的使用 #if后面接的是一个宏. #if defined (x) ...code... #endif 这个#if defined它不管里面的“x”的逻辑是“真”还是“假”它只管这个程序的前面的

#if、#ifdef、#if defined之间的区别(转载)

转自:http://www.yucoat.com/c_program/difference_if_ifdef_if_defined.html #if的使用说明 #if的后面接的是表达式 #if (MAX==10)||(MAX==20) code... #endif 它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!) #if defined的使用 #if后面接的是一个宏. #if defi

C/C++预处理指令#define,#ifdef,#ifndef,#endif… (转)

本文转自博文C/C++预处理指令#define,#ifdef,#ifndef,#endif….这篇博文写得特别好,特转载. 本文主要记录了C/C++预处理指令,常见的预处理指令如下: #空指令,无任何效果 #include包含一个源代码文件 #define定义宏 #undef取消已定义的宏 #if如果给定条件为真,则编译下面代码 #ifdef如果宏已经定义,则编译下面代码 #ifndef如果宏没有定义,则编译下面代码 #elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码 #en

预处理指令

1.预处理指令 即编译之前执行的指令 C中的预处理指令包括:文件包含,宏定义,条件编译 2.文件包含#include <stdio.h> <>和""的区别 #include <file_1.h> //直接在C库函数头文件所在目录下找 #include "file_1.h" //先在main.c所在目录下找,若无到环境变量path路径中找,若无,到C库函数头文件所在目录中找 #include可能会导致重复包含文件,降低编译效率 解决