分类: LINUX
2011-08-25 07:53:10
【本文摘自】:
作者:清林,博客名:飞空静渡;
预处理语句:就是以#号开头的那些语句。
下面罗列一下gcc支持的预处理语句,用得最多的最通常的预处理语句就简单说一下,其它的也都简要说一下。
#define 定义一个宏,这个宏会在预处理的时候在代码处展开。
#elif 提供#if预处理语句的一个选择。
#else #if,#ifdef或#ifndef的分支语句。
#error 产生一个错误信息,并停止预处理。
#if #if和#endif构成一个语句块,如果#if后面的数值表达式非零则编译#if后面的语句块。
#ifdef 也是和#endif构成一个语句块,如果#ifdef后面的宏如果被定义过,则编译#ifdef后面的语句块。
#ifndef 和#ifdef相反。
#include 按照一定的目录顺序搜索#include后面包含的文件,如果搜索到,就把这个文件的内容插入到当前的源代码里,#include ""和
#include <>的区别相信大家都比较熟悉了,就是搜索目录的顺序不一样。
#include_next 其作用和#include一样。不一样的地方就是搜索目录的顺序,它搜索当前源文件所在的目录及其后面的目录。举例来说,当前的
源文件为abc.c,它所在的目录是B,现在#include搜索的目录顺序是A,B,C,D,E。假设A是系统目录,B是当前目录,那么
#include "a.h"就从B开始搜索,#include
#line 指定一个行好或文件名,用于向编译器报告,用于编译器在object文件中创建调试信息。
#pragma 用于提供指定一个编译器或平台附加信息的标准方法。
#undef 取消#define的宏定义。
#warning 将使预处理器产生一个警告信息。
## 连接两个字符串。