全局变量
全局的生命周期,作用域
与任何函数无关,任何函数都可以使用全局变量
未初始化的全局变量,默认值0,指针指向NULL
只能编译时刻已知的值来初始化全局变量
初始化发生在main函数之前
1 | //错误示例 |
编译预处理
#开头的是编译预处理指令
1 |
define 宏
纯文本替换
1 |
|
gcc 查看编译过程文件
gcc 文件名 –save-temps
.c -> .i -> .s -> .o -> .out
预定义宏
__LINE__
__FILE__
__DATE__
__TIME__
__STDC__
带参数的宏
一切都要括号
整个值要括号
参数出现的每个地方都需要括号
1 |
大程序结构
创建项目
一个.c文件是一个编译单元
编译器每次编译只处理一个编译单元
头文件
函数原型
1 |
|
indlude “”和<>的区别
“” 当前目录查找,未找到查找系统指定目录
<> 只在系统指定目录查找
static
不对外公开的函数,变量
只能在所在的编译单元中被使用的函数,全局变量
全局变量申明
只有申明可以放在头文件中
1 | //max.h |
重复定义,引用
标准头文件结构
1 |
|