全局变量初始化
static
使用全局变量和静态本地变量的函数是线程不安全的
编译预处理指令
它们不是c语言的成分,但是c语言程序离不开它们
Example 01:
```c
#include
int main(){
printf("%f\n",2*PI);
return 0;
} ```
Example 02:
```c
#include
int main(){
// printf("%f\n",PI); // printf("%f\n",PI2); PRT;
return 0;
} ```
define
预定义的宏
_ _ LINE _ _
_ _ FILE _ _
_ _ DATE _ _
_ _ TIME _ _
_ _ STDC _ _
Example 01:
```c
#include
int main(){ printf("%s:%d\n",FILE,LINE); printf("%s:%s\n",DATE,LINE);
return 0;
} ```
像函数的宏
宏可以带参数
Example 01:
```c
#include
int main(int argc,char const *argv[]){ int i; scanf("%d",&i); printf("%d\n",cube(i));
return 0;
} ```
带参数的宏的原则:
一切都要括号
宏可以带多个参数:
宏也可以组合(嵌套)使用其他宏
多个 .c 文件

编译器每次编译只处理一个编译单元
引入头文件

声明
在 .h 中添加 extern int gAll; 就能使用 gAll 了
extern int i; //是变量的声明
声明不产生代码,定义产生代码
标准头文件结构
条件编译指令
