`

#if #ifdef和#ifndef 三者之间的区别

    博客分类:
  • C++
 
阅读更多
条件编译 预处理程序提供了条件编译的功能。 可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。 这对于程序的移植和调试是很有用的。 条件编译有三种形式,下面分别介绍:

1. 第一种形式: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的功能是,如果标识符已被 #define命令定义过则对程序段1进行编译;否则对程序段2进行编译。如果没有程序段2(它为空)

2. 第二种形式: #ifndef 标识符 程序段1 #else 程序段2 #endif 与第一种形式的区别是将“ifdef”改为“ifndef”。它的功能是,如果标识符未被#define命令定义过则对程序段1进行编译, 否则对程序段2进行编译。这与第一种形式的功能正相反。

3. 第三种形式: #if 常量表达式 程序段1 #else 程序段2 #endif 它的功能是,如常量表达式的值为真(非0),则对程序段1 进行编译,否则对程序段2进行编译。因此可以使程序在不同条件下,完成不同的功能



分享到:
评论

相关推荐

    预处理命令的学习心得.txt

    常用的条件编译指令有`#ifdef`、`#ifndef`、`#if`等。 ##### 1. #ifdef 和 #ifndef 这些指令用于检查宏是否已定义: ```c #ifdef WINDOWS // Windows-specific code #endif #ifndef LINUX // Non-Linux code #...

    The C Programing language

    介绍了预处理器的概念,包括文件包含(#include)、宏定义(#define)和条件编译(#ifdef、#ifndef)等指令。 ### 第五章:指针与数组 #### 1. 指针与地址 解释了指针变量的声明和初始化,以及如何通过指针访问...

    C语言国家二级笔试历年真题(含答案)

    3. 条件编译:理解#if、#ifdef、#ifndef、#else、#elif和#endif的用法,用于编写条件化代码。 五、输入输出函数 1. 标准输入输出流:熟悉scanf和printf函数的使用,理解格式化输入输出的概念。 2. 文件操作:初步...

    C和C++一些相关课件

    首先,从文件名来看,“C语言条件编译详解.doc”讲述了C语言中的预处理器指令,特别是条件编译(#if, #ifdef, #ifndef, #else, #elif, #endif),这是在不同环境下控制源代码编译的重要工具,用于处理针对不同平台或...

    C-100-questions-Nankai.rar_visual c

    12. 条件编译:使用#if、#ifdef、#ifndef、#else、#endif进行条件编译。 五、文件操作 13. 文件流:掌握fopen、fclose、fread、fwrite、fprintf、fscanf等函数,进行文本文件和二进制文件的读写操作。 14. 文件指针...

    c 语言课件

    8.3 条件编译(#if, #ifdef, #ifndef, #else, #endif) 第九章:文件操作 9.1 文件的基本概念与打开关闭 9.2 文件读写函数(fopen, fclose, fread, fwrite, fprintf, fscanf等) 9.3 文件指针的操作与定位 9.4 错误...

    C语言经典例题100道

    本题需要我们理解和使用条件编译指令`#if`、`#ifdef`和`#ifndef`。 ### #include 的应用练习 此题要求我们理解和使用`#include`指令来包含头文件。 ### 学习使用按位与 & 此题需要我们学习和实践按位与运算符的...

    C++语言详解.pdf

    - **条件编译**: 使用#if、#ifdef、#ifndef等指令进行条件编译。 - **文件包含**: 使用#include指令包含其他头文件。 #### 2. 库函数 - **标准库**: 提供了一系列预先定义好的函数和类,如输入输出流(iostream)、...

    C语言程序教程

    8. 预处理器处理程序中的宏定义、条件编译指令(#if、#ifdef、#ifndef、#else、#endif)以及包含文件(#include)。 七、内存管理 9. C语言提供了malloc()和free()函数进行动态内存分配和释放。了解内存泄漏和栈与...

    Programming In C 答案(第三版)

    2. 预处理器条件语句:如#if、#ifdef、#ifndef、#else、#elif和#endif用于条件编译。 除此之外,书中还可能涉及位操作、错误处理、标准库函数的使用等方面的知识。通过解答书中的练习题,读者可以加深对这些概念的...

    Dev-cpp API

    - **条件编译指令**:包括 `#if`, `#ifdef`, `#ifndef`, `#else`, `#elif`, `#endif` 等,用于控制编译过程。 - `#if expression`:当表达式的值为非零时,编译其后的代码块。 - `#ifdef macro`:如果宏 `macro` ...

    基于51单片机-C语言之预处理总结

    例如,通过#if、#ifdef、#ifndef等指令,预处理器可以根据特定条件来决定是否编译某段代码。这常用于防止头文件被多次包含,确保程序的正确性。 总结而言,C语言预处理是提高程序可读性和灵活性的关键环节。通过...

    c语言基础教程-谭浩强

    常用的预处理器指令包括#include(引入头文件)、#define(宏定义)和条件编译(如#if、#ifdef、#ifndef等)。 最后,学习C语言还需要掌握良好的编程习惯,如注释的使用、代码的格式化和错误调试方法等。通过实践...

    谭浩强C程序设计第三版.rar(doc格式)

    6. **预处理指令**:预处理器宏定义(#define)、条件编译(#if, #ifdef, #ifndef, #endif)等,是控制代码编译过程的重要工具,用于实现代码的条件编译和模块化。 7. **文件操作**:学习如何打开、读取和写入文件...

    C语言源代码

    预处理器在编译阶段对源代码进行处理,如包含头文件(#include)、宏定义(#define)和条件编译(#if、#ifdef、#ifndef等)。理解预处理器的作用有助于编写模块化和可维护的代码。 七、内存管理 C语言提供了动态...

    c语言帮助文档

    条件编译(#if、#ifdef、#ifndef、#else、#endif)实现代码的条件编译。 十二、输入输出 标准输入输出库stdio.h提供了scanf和printf函数进行格式化输入输出,还有fopen、fclose、fread、fwrite等文件操作函数。 这...

    谭浩强C语言word版

    3. 条件编译:利用#if、#ifdef、#ifndef等指令实现条件编译,针对不同环境编译不同的代码。 六、文件操作 1. 文件打开与关闭:使用fopen和fclose函数进行文件的打开和关闭操作。 2. 文件读写:fread和fwrite用于二...

Global site tag (gtag.js) - Google Analytics