c语言预编译指令有哪些?
预处理器的主要作用就是把通过预处理的内建功能对一个资源进行等价替换,最常见的预处理器指令有:文件包含、条件编译、布局控制和宏替换4种。
文件包含
#include是一种最为常见的预处理,作为文件的引用。
条件编译
#if、#ifndef等,主要是进行预编译时进行有选择的挑选,注释掉一些指定的代码,以达到版本控制、防止对文件重复包含的功能。
布局控制
#pragma,这也是我们应用与处理的一个重要部分,主要功能是为编译程序提出非常规的控制流信息。
宏替换
#define,这是最常用的用法,它可以定义符号常量、函数功能、重新命名、字符串的拼接等各种功能。
常见的预处理指令
#define宏定义
#undef未定义宏
#include文本包含
#ifdef如果宏被定义就进行编译
#ifndef如果宏未被定义就进行编译
#endif结束编译块的控制
#if表达式非零就对代码进行编译
#else
#elif这是一种#else和#if的组合选项
#line改变当前的行数和文件名称
#error输出一个错误信息
#pragma为编译程序提供非常规的控制流信息。
预定义标识符
为了处理一些有用的信息,预处理定义了一些预处理标识符,虽然各种编译器的预处理标识符不尽相同,但他们都会处理下面四种:
__FILE__:正在编译的文件名
__LINE__:正在编译的文件的行号
__DATE__:编译时刻的日期字符串
__TIME__:编译时刻的时间字符串
注意:
#include
编译器从标准库路径开始搜索。
#include “stdio.h”
编译器从用户的工作路径开始搜索。
#error this code is c,
not python.
在预编译时,会报错,如上信息。