C语言特点
C语言关键字
32个关键字
auto static extern
break continue
switch case default if else
void char short int float double
for do while
typedef struct union enum
sizeof
const define
unsigned signed
return
volatile register goto
代码分析
include
< >和" “的区别
<> 按系统指定的目录检索
" " 现在” "指定的路径(不写表示当前路径)检索, 如果找不到, 再按系统指定的目录检索
main函数和注释
int main(int argc, int *argv[]){ //argc表示有多少个参数, argv表示参数列表
/* 我是注释 */
return0;
}
C语言编译过程
预处理: 宏定义展开, 头文件展开, 条件编译等, 同时将代码中的注释删除
编译: 检查语法, 将预处理后的文件编译生成汇编文件
汇编: 将汇编文件生成二进制文件
链接: 让彼此相关联的文件连接预处理:gcc -E hello.c -o hello.i
编 译:gcc -S hello.i -o hello.s
汇 编:gcc -c hello.s -o hello.o
链 接:gcc hello.o -o hello_elf
.c C 语言文件
i 预处理后的 C 语言文件
s 编译后的汇编文件
o 编译后的目标文件
GCC编译器
GNU开发的编程语言编译器
编译命令格式:
gcc [-option1]…<filename>
g++ [-option1]…<filename>
常用选项:
-o file: 指定生成的输出文件名为file
-E: 只进行预处理
-S: 只进行预处理和编译
-c: 只进行预处理.编译和汇编
注意
Linux编译后的只能在linux下运行, 64位只能在64位下运行, 32位只能在32位下运行
Windows编译后的只能在Windows下运行 64位只能在64位下运行, 32位可以再64位下运行
条件编译
#ifdef 标识符(#define X 1)
#else
#endif
#ifndef 标识符
#else
#endif
#if 表达式
#else
#endif