经典算法_预处理

Posted 邓戈麟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典算法_预处理相关的知识,希望对你有一定的参考价值。

 

预处理

1 宏定义

2 文件包含

3 条件编译

 

1 宏定义

 

软件工程规定,宏定义用英文大写

 

define不会进行类型检查,只会替换,所以某些场合会出错。

尽量不用define,用const,const初始化的时候,会自动进行类型转换,会有类型检查

 

 1 #define _CRT_SECURE_NO_WARNINGS
 2 
 3 #include <stdio.h>
 4 #include <stdlib.h>
 5 
 6 #define M 10.0
 7 
 8 main()
 9 {
10     const int N = 10.9;
11 
12     printf("%d\n", M);//define不会进行类型检查,只会替换,所以某些场合会出错。
13 
14     printf("%d\n", N);//尽量不用define,用const,const初始化的时候,会自动进行类型转换,会有类型检查
15 
16     system("pause");
17 }

 

3 条件编译

 

 1 #define _CRT_SECURE_NO_WARNINGS
 2 
 3 #include <stdio.h>
 4 #include <stdlib.h>
 5 
 6 #define cn "你好世界"
 7 #define en "hello world"
 8 
 9 #define B 1//定义一个宏,有选择的编译语句,例如一套编码同时应对中英文两个版本
10 
11 main()
12 {
13 
14 #if B == 1
15 {
16     printf(cn);
17 }
18 #else
19 {
20     printf(en);
21 }
22 #endif
23 
24     system("pause");
25 }

 

以上是关于经典算法_预处理的主要内容,如果未能解决你的问题,请参考以下文章

算法竞赛入门经典_4.3_递归

经典算法题:红黑树(阿里笔试题)

算法_五大经典查找算法

算法竞赛入门经典_2_变量及其输入

片段(Java) | 机试题+算法思路+考点+代码解析 2023

算法竞赛入门经典_3.1_数组_逆序输出_开灯问题