在程序码最前面内容,编译前编译器会依照这些内容进行不同的处理
所有前置处理器都是 # 开头
最一开始讲到的 #include
就是前置处理的一种,用来引入函式库
另一种是 #define
,有两种功能
语法是:
#define <目标文字> <替换文字>
可以想成是在执行编译前,编译器会把程序码档案中所有 <目标文字>
替换成 <替换文字>
下面程序码在编译前,所有 NUMBER
都会被替换成 int
,也就是说在这段程序码中,NUMBER
和 int
是一样的
#include<stdio.h>
#include<stdlib.h>
#define NUMBER int
int main(){
NUMBER a=100;
printf("%d", a);
return 0;
}
也可以定义运算子和函式
#include<stdio.h>
#include<stdlib.h>
#define ADD +
#define SHOW
int main(){
int a= 100 ADD 9;
SHOW("%d", a);
return 0;
}
虽然可以定义任何的内容,但通常只拿来定义常数(数字、字串、字元)
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
#define ERROR_MESSAGE "Too large!!!"
int main(){
int x;
scanf("%d", &x);
if(x>MAX)
printf(ERROR_MESSAGE);
else
printf("OK");
return 0;
}
用 #define
定义常数可以增加不少方便性:
#define
可以确保执行过程数值不变虽然大部分时候会尽量避免,不过 #define
也可以用来定义函式,语法是:
#define <函式名称>(<参数>) <定义>
下面的 SUM
有两个参数 a
, b
,回传两者的和
#include<stdio.h>
#include<stdlib.h>
#define SUM(a, b) a+b
int main(){
int x,y;
scanf("%d%d", &x, &y);
printf("%d\n", SUM(x, y));
return 0;
}
实际上用 #define
定义的函式,执行速度会比自订函式还快,但函式功能复杂时不好编写,且容易造成执行结果错误
挖坑清单:
main()
前面的 int
,和最後一行的 return 0;
>>: Day 12: 验收测试、测试策略 (待改进中... )
前言: 做完网站最基本的导览功能後,接下来要进入的就是我们的页面了!在制作页面的同时, 阿森也会善...
Youtube 频道:https://www.youtube.com/c/kaochenlong ...
今天的影片内容为爬取Google Play网页版应用程序的评论 并将前几天爬取AJAX网页(Dcar...
终於到第四天了,难熬的星期六放假日,为了完成这项意志力挑战,我还是起了个大早~ 今天我们来尝试制作地...
这个得上一篇:https://ithelp.ithome.com.tw/articles/10258...