gcc:预处理语句

       原创文章,转载请注明出处,谢谢!       
       作者:清林,博客名:飞空静渡

 

什么是预处理语句,其实很简单,就是以#号开头的那些语句就是预处理语句。

下面罗列一下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.h>就从A开始搜索,#include_next <a.h>就从C,D,E目录顺序来搜索。

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

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

#undef    取消#define的宏定义。

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

##          连接两个字符串。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值