2.2 预处理命令

宏定义

1.定义符号常量

#define PI 3.1415926
#define Max_N 10000000

上面两个例子,分别定义了一个常量

并在以后的编译中,将PI看作3.1415826

将Max_N看作10000000

2.定义傻瓜表达式

#define Max(a,b) (a) > (b) ? (a) : (b)
#define s(a,b) a * b

上面的第一个例子,定义了一个Max(a,b)。

在你以后的编译中

Max(a,b)将被看作(a) > (b) ? (a) : (b)

但是注意,这个东西有点呆

他看起来不太聪明的亚子:

第二个例子,s(a,b)将被看为a*b

所以s(3,5)将被看为3*5

好像没什么问题?

可是…

s(3+4,5+6)

会被看为

3+4*5+6…

3.定义代码段

#define P(a){\
	printf("%d\n",a);\
}

这样可以定义一个代码段,其后的\是一个链接符

P(a)在后续的编译中会自动被看作printf(“%d\n”,a);

所以说,上面那个例子

P(a)会被自动看为printf(“%d\n”,a);

(注意上面有分号)

所以在你的调用中,直接写

P(a)

就可以。

但是建议还是写成

P(a);

毕竟…

这样,您也能通过编译:

int a;;;;;;;;;;;;;;;;;
cin >> a;;;;;;;;;;;;;;
cout << a;;;;;;;;;;;;;

分号又不要钱,多打一个,咋的?

·········································································································································

| 【源码】----->【编译源码】----->【对象文件】----->【可执行程序】 |

·········································································································································

最近的文章

2.1 字符串与Ascii码

1.定义char a[100];2.初始化a[] = "hello";a[6] = {'h', 'e', 'l', 'l', 'o'};注:字符数组与其他字符数组不同,其最后一位为’\0’,即休止符。…

继续阅读
更早的文章

算法扩展1-素数筛

如果你想要判断一个数字是否是质数,你该怎么办呢?首先,我们要先知道质数的定义是什么:质数是指,在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。那么我们很简单就能编辑出我们的最初版判断素数函数:【我们以欧拉第七题举例,输出第10001个素数】#include <iostream&g…

继续阅读