Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32159
  • 博文数量: 12
  • 博客积分: 70
  • 博客等级: 民兵
  • 技术积分: 115
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-20 09:22
文章分类

全部博文(12)

文章存档

2012年(3)

2011年(9)

我的朋友

分类: 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 就从A开始搜索,#include_next 就从C,D,E目录顺序来搜索。

#line       指定一个行好或文件名,用于向编译器报告,用于编译器在object文件中创建调试信息。

#pragma 用于提供指定一个编译器或平台附加信息的标准方法。

#undef    取消#define的宏定义。

#warning 将使预处理器产生一个警告信息。

##          连接两个字符串。

 

阅读(514) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~