C语言条件编译

C语言条件编译教程

C 语言 中,一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是 “条件编译”。

有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。条件编译功能可按不同的条件去编译不同的程序部分,从而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。

C语言条件编译分类

C 语言条件编译有三种形式,分别为:#ifdef 形式,#ifndef 形式和 #if 形式,它们的区别如下:

指令集

条件编译指令 描述
#ifdef 如果标识符已被 #define 命令定义过,则编译,否则不编译
#ifndef 如果标识符未被 #define 命令定义过,则编译,否则不编译
#if 如果常量表达式的值为真(非0),则编译,否则不编译

C语言条件编译作用

作用 描述
屏蔽跨平台差异 在大规模开发过程中,特别是跨平台和系统的软件里,可以在编译时通过条件编译设置编译环境。
包含程序功能模块 可以使用 #ifdef 实现包含程序的不同的功能模块。
开关调试信息 调试程序时,常常希望输出一些所需的信息以便追踪程序的运行。而在调试完成后不再输出这些信息,可以通过条件编译控制。
防止头文件重复包含 头文件(.h)可以被头文件或 C 文件包含。由于头文件包含可以嵌套,C 文件就有可能多次包含同一个头文件;或者不同的 C 文件都包含同一个头文件,编译时就可能出现重复包含(重复定义)的问题。

C语言条件编译教程总结

在 C 语言中,一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是 “条件编译”。