Linux C预处理命令

                                                       预处理命令

一.宏定义

C语言标准允许在程序中用一个标识符来表示一个字符串,称为宏。标识符为宏名,在编译预处理时,将程序中所有的宏名用相应的字符串来替换,这个过程称为宏替换,宏分为两种:无参数的宏和有参数的宏。

无参数宏定义的一般形式为:

#define  标识符字符串

“#”代表本行是编译预处理命令。define是宏定义的关键字,标识符是宏名。

注意:  宏定义和其他编译预处理命令不是以分号结尾的。

例如:使用无参数宏的程序,输入半径,求园的周长,面积和体积。


第二行宏定义,用PI来代表3.1415926,宏替换是在程序中用相应的字符串来替换宏名,编译器预处理程序对他不做任何检查。

有参数宏的一般形式为:

#define  标识符(形参表)  字符串

如果有多个形参,像函数参数一样以逗号隔开。在程序中使用有参数宏的形式是:

标识符(实参表)

例如  演示了有参数宏的实现方法。

二.文件包含

文件包含是指把指定源文件的全部内容包括到当前源程序文件中。

文件包含命令的一般形式为:

#include"文件名"  或#include<文件名>

文件包含预处理命令#include的作用是使一个源文件可以将另外一个源文件的全部内容包含起来,把指定的文件插入该命令行位置取代该命令行,从而把指定的文件和当前的源文件程序文件连成一个源文件。

一个include命令只能指定一个被包含文件,若有多个文件要包含,则需要多个include命令。

文件包含允许嵌套,即在一个被包含的文件中可以包含另一个文件。

三.条件编译

一般情况下,源程序中所有的行都被编译,有时希望其中一部分内容只在某个条件成立或不成立时才去编译,也就是对一部分内容指定编译的条件,这就是条件编译。

条件编译命令有以下几种模式。

模式一:

#ifndef 标识符

程序段1

#endif

其含义是:如果没有定义标识符,则编译程序段1.

模式二:

#ifndef 标识符

程序段1

#else

程序段2

#endif

其含义是:如果没有定义标识符,就编译程序段1,否则就编译程序段2.

模式三:

#ifdef 标识符

程序段1

#endif

其含义是:如果没有定义标识符,就编译程序段1,否则就不编译该程序段。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值