您的位置:首页 > 编程语言 > C语言/C++

C语言的编译预处理

2013-08-04 21:39 204 查看
C语言提供了多种编译预处理功能,其中主要的有宏定义、文件包含、条件编译。
在C语言中,凡是以“#”开头的行,都称为“编译预处理”命令行。如:#include,#define
伪指令(或预处理指令)定义: 预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是部分预处理指令:
指令  用途
# 空指令,无任何效果
#include 包含一个源代码文件
#define定义宏
#undef取消已定义的宏
#if如果给定条件为真,则编译下面代码
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码,其实就是else if的简写
#endif结束一个#if……#else条件编译块
#error停止编译并显示错误信息1.宏定义宏定义 又称宏展开,宏替换。宏定义分有参数和无参数两种。Eg: #define PI 3.14 //无参数型#defineV(R) R*R*R //有参数型
2.文件包含(1)eg:#include <area.h> 在编译时,将area.h的内容引入程序中插入该命令行位置取代该命令行。(2)#include "文件名" 与#include <文件名> 区别#include "文件名" :系统先在当前目录中搜索被包含的文件,若没有找到,再到系统指定的目录搜索; #include <文件名> :系统直接到指定的路径搜索。(3)被包含的文件的类型 :通常是以".h"为后缀的头文件(或称“标题文件”)和以".c"为后缀的源程序文件。既可以是系统提供的,也可以是用户自己编写的。3.条件编译#ifdef 标识符 程序段1#else 程序段2#endif
它的作用是,当标识符已经被定义过(一般用#define定义),则对程序段1进行编译,否则编译程序段2.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C 编译预处理