(五)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) && defined(NAME2) 
....... 
#endif

时间: 2024-08-07 16:27:30

(五)c语言条件编译#ifdef与#if defined的相关文章

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语言条件编译

学习C语言也快两年了,一直知道有这东西,但是却一直没去认真学习下.其实还是非常简单的.只怪自己太懒. 只有在昨天学习<THINKING IN JAVA>时候才看到,JAVA用异常来代替了C语言的条件编译功能.好坏自己就不敢妄加判断了. 在网上学习了一会,自己归纳如下:(主要是感觉自己写的例子比网上的看起来快多了) 预处理程序提供了条件编译的功能.可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件.这对于程序的移植和调试是很有用的.条件编译有三种形式,下面分别介绍. 第一种形式 第

#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的简写,是宏定义的一种,它是

#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)

Mac出现五国语言灰色屏幕灰屏怎么办?

用CleanMyMac2清理文件之后,mac 死机,强制关机重启后进入灰屏,出现五国语言. 重新启动mac 并按住option按键,进入修复界面后,输入wifi密码,选择右侧的备份硬盘,后出现如下画面.(或者启动时直接 Shift-Command-V) 有人用磁盘修复可以成功启动,我通过选择第二项"重新安装mac os"修复系统,保证网络通畅,mac会自动下载相关文件,你做需要做的就是等待,下载完成后自动重启,个人文件.软件不会丢失,和死机之前一样. 最好用time machine 备

#ifdef和#if defined

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

接下来的两年你可能需要这五种语言(转载)

对于处在编程世界的我们来说,现在已经走到了一个转折点.十年前,程序员们对动态语言趋之若鹜.对我们中的大部分人来说, 动态语言不仅使编程变得更加简单,同时也意味着一种时尚.时至今日,动态语言不再享有特别的青睐,现在的程序员使用新语言和旧语言的搭配来开发项目.我不 禁要问,为了保持自身的竞争力,哪些编程语言是程序员们最需要永久掌握的? 在我们讨论哪些编程语言在未来会吃香这个问题之前,先来看看不同编程语言之间的的异同. 静态语言 vs. 动态语言 当我们说到动态语言时,这个“动态”实际上说的是变量类型

条件编译#ifdef的妙用详解

c语言中条件编译相关的预编译指令,包括  #define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. #define            定义一个预处理宏#undef            取消宏的定义 #if                   编译预处理中的条件命令,相当于C语法中的if语句#ifdef              判断某个宏是否被定义,若已定义,执行随后的语句#ifndef            与#ifdef