多语言展示
当前在线:238今日阅读:84今日分享:32

C/C++中define编译预处理的用法

C/C++中define是编译预处理,用于定义宏来表示某些值或表达式,使用define后,程序在编译时会先将定义好的标识用表达式替换,在进行编译,所以被称为编译预处理。
方法/步骤
1

C/C++中define是编译预处理,用于定义宏来表示某些值或表达式,使用define后,程序在编译时会先将定义好的标识用表达式替换,在进行编译,所以被称为编译预处理。

2

编译预处理有两种形式:#define 名称 表达式#define 名称(参数1,参数2,…,参数n) 表达式上面一种是不带参数宏定义方法,编译时会直接将名称替换成表达式,替换时并不会进行类型转换。下面一种是带参数的宏定义方法,参数可以带入后面的表达式中进行运算,再进行替换。

3

例子是让用户输入两圆的半径,并计算出他们的面积,最后再比较出他们之间的大小。这段代码包括了define的常用方法。 F是自定义的一种类型,这种用宏自定义类型的方法很常用,目的是减少代码因类型变更的修改;PI是定义了一个圆周率常量。Sq(x)是一个带参数的宏,x是参数,表达式x*x是将参数相乘,实际就是计算平方;A(n)嵌套了前面两个宏PI和Sq(n),这表明宏是可以嵌套的,这个宏用于计算圆的面积;MAX(a,b)宏带有两个参数,过程是(a>b)?a:b用于比较大小,并返回较大的值。AR定义了一个字符串,作用是方便printf输出类型和小数位的修改;Conn(a,b)链接两个字符串,##表示将a、b两个参数连成字符串,不过这个连接只支持常量,变量字符串没法正常连接;#@转换单个字符,#直接转换字符串,但都不支持变量转换;\可连接下一行,当宏定义的表达式或字符串比较长无法一行写完时可以用\连接下一行。

推荐信息