#define PI 3.14159
//一定不能加分号;
#include<stdio.h>
#define PI 3.14159
#define PI2 2*PI //pi*2
#define PRT printf("%f ",PI);\
printf("%f ",PI2);
int main(){
//printf("%d\n",PI2);
PRT;//3.141590 6.283180
return 0;
}
没有值的宏
#define _DEBUG
• 这类宏是⽤于条件编译的,后⾯有其他的编译预处理指令来检查这个宏是否已经被定义过了
预定义的宏
#include<stdio.h>
int main(){
printf("%s:%d\n",__FILE__,__LINE__);//G:\ss.cpp:4
printf("%s:%s\n",__DATE__,__TIME__);//Jan 22 2019:21:04:19
return 0;
}
像函数的宏
#include<stdio.h>
#define cube(x) ((x)*(x)*(x))
int main(){
printf("%d\n",cube(5));//125
return 0;
}
include
不对外公开的函数
• 在函数前⾯加上static就使得它成为只能在所在的编译单元中被使⽤的函数
• 在全局变量前⾯加上static就使得它成为只能在所在的编译单元中被使⽤的全局变量