摘要:
第23课 - #error 和 #line 使用分析 1. #error 的用法 (1)#error 是一个预处理器指示字,用于生成一个编译错误消息,这个消息最终会传递到编译器(gcc) 在思考这一点的过程中,领悟到了两个点: ① 使用 gcc 编译代码,输出的错误(警告)信息,是由预处理器、编译器 阅读全文
摘要:
第22课 - 条件编译使用分析 这节课我们介绍如何使用C语言中的条件编译。 市面上的电子产品一般有低配版、中配版、高配版,那相应的软件也要开发三个版本吗?显然不是这样的,我们一般在同一套代码中使用条件编译区分不同的版本。 1. 基本概念 (1)c 程序的编译一般经过如下四个过程 条件编译是在预处理阶 阅读全文
摘要:
第20课 - 链接过程简介 1. 思考一个问题 在具体工作中,每个软件项目都有很多个.c源文件,每个.c源文件经过编译后生成.o格式的目标文件,那么这些.o文件如何生成最终的可执行程序呢? 这里就要引入C语言的链接器了。 2. 链接器的作用 链接器的主要作用就是处理各个模块(目标文件和库文件)之间的 阅读全文
摘要:
第21课 - 宏定义与使用分析 阅读全文
摘要:
第18课 - 三目运算符和逗号表达式 1. 三目运算符 (1)三目运算符(a ? b : c)可以作为逻辑运算的载体 (2)规则:当a的值为真时,返回b的值;否则返回c的值 三目运算符的本质就是 if...else... 语句,只不过三目运算符格式更加方便优雅。 【三目运算符初探】 (3)三目运算符 阅读全文
摘要:
第19课 - 编译过程简介 1. 初识编译器 我们通常所说的编译器其实是一个广义的概念,其实它里面包含了多个子模块,编译的过程由这些子模块协作完成。 编译器的工作过程 2. 编译器做了什么? 2.1 预处理 预处理由预处理器完成,预处理指令示例:gcc -E file.c -o file.i (1) 阅读全文
摘要:
第17课 - ++和--操作符分析 1. ++和--操作符对应的两条汇编指令 (1)前置++/--对应的两条汇编指令:变量自增(减)1;然后取变量值 (2)后置++/--对应的两条汇编指令:先取变量值;然后变量自增(减)1 上面两条规则很简单,那 ++ 和 -- 操作符是不是就不需要研究了呢?我们使 阅读全文
摘要:
第15课 - 逻辑运算符分析 阅读全文
摘要:
第16课 - 位运算符分析 1. C语言中的位运算符 C语言中的位运算符直接对 bit 位进行操作,其效率最高。 2. 左移和右移运算符的注意点 (1)左操作数必须为整型类型即char、short、int,其中char和short被隐式转换为int后进行移位操作。其它的数据类型,如float等不能进 阅读全文
摘要:
第14课 - 单引号和双引号 阅读全文