摘要:
使用关键字define 定义就叫宏。例如: #define PI 3.14 (宏定义) 在预处理阶段,使用3.14替换所有出现 PI 的位置(宏展开) 注意:宏后面不要加分号 建议宏尽量用大写字母,用于和普通变量分开 宏的作用范围是从宏定义处开始到当前文件结束都有效(#undef可以结束宏) 宏没有 阅读全文
摘要:
头文件包含 在预处理阶段,将头文件的内容原封不动的包含在目的文件中 例如:#include<head.h> (建议 < > 中包含的是系统头文件) < > 符号代表从系统指定目录寻找head.h头文件 例如:#include "head.h" (建议 " " 中包含的是自定义头文件) " " 符号代 阅读全文
摘要:
编译过程:预处理、编译、汇编、链接 预处理:包括宏替换、删除注释、头文件包含、条件编译(这个阶段不会报语法错误) gcc -E hello.c -o hello.i 编译:将预处理后的文件编译成汇编文件(这个阶段会报语法错误) gcc -S hello.i -o hello.s 汇编:将汇编文件生成 阅读全文
摘要:
普通局部变量 定义形式:在 {} 里面定义的普通变量叫普通局部变量 作用范围:所在的 {} 复合语句之间有效 生命周期:所在的 {} 复合语句执行期间有效 存储区域:栈区 注意事项: 普通局部变量,如果不初始化,内容就不确定 普通局部变量如果同名,就采用就近原则(尽量不要同名) 普通全局变量 定义形 阅读全文
摘要:
进程:可执行文件从运行到结束,整个动态的过程就叫进程(在内存进行,占据内存空间) 在32位平台,每一个进程占4G空间(虚拟空间),系统为内存的每一个字节,分配一个32位的地址编号 阅读全文
摘要:
普通变量作为函数的参数 如果函数内部需要使用外部变量的值,需要将外部变量的值传递给函数内部,这时普通变量就要作为函数的形参(单向传递之值传递) 数组作为函数的参数 数值数组作为函数的参数 函数内部可以操作(读写)外部数组的元素 字符数组作为函数的参数 阅读全文