预处理命令

一.宏定义

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

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

#define  标识符字符串

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

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

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

Linux C预处理命令

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

有参数宏的一般形式为:

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

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

标识符(实参表)

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

Linux C预处理命令

二.文件包含

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

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

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

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

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

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

三.条件编译

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

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

模式一:

#ifndef 标识符

程序段1

#endif

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

模式二:

#ifndef 标识符

程序段1

#else

程序段2

#endif

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

模式三:

#ifdef 标识符

程序段1

#endif

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



相关文章:

  • 2021-06-16
  • 2021-09-12
  • 2022-01-10
  • 2021-12-03
  • 2022-12-23
猜你喜欢
  • 2021-10-14
  • 2021-06-09
  • 2021-10-10
  • 2022-12-23
  • 2022-12-23
  • 2021-09-09
相关资源
相似解决方案