嵌入式学习2022.1.19+1.21——C语言基础与提高
一、基本数据类型





表示方法:
类型、长度范围、表示方法、每种类型的数据允许进行的运算
尾数+指数
补码:正数本身、负数取反加一(避免0也有正负)
反码:正数本身、负数取反
Strlen(a):不包括\0,返回字符长度
Sizeof(a):包括\0,返回数组长度,与字符多少无关
转义字符都需要加上“\”
\a蜂鸣器
\b 退格
\d tab跳格
\t纵向跳格
\2跳到当前航的第一列
\f走纸换页,打印机用到
\ddd一到三位八进制数代表的ASCALL码
\xhh表示一到两位十六进制数
数组、结构体、枚举等后续补充






二、关键字
1、register![]()
2、static

3、const


4、volatile


5、extern

6、struct

①“结构体名”用作结构体类型的标志;
②花括弧内是该结构体中的各个成员,由它们组成一个结构体;在结构体内对各成员都应进行类型声明;
③“成员表列”也称为域表。每个成员也称为结构体
中的一个域,成员名命名规则与变量名一样;
④每个成员名前的类型标识符可以为已经定义了的任
意类型,当然可以是结构体类型标识符,即结构体成员也可以是另一个结构体变量。
⑤此处只是构造出一个新的类型,并没有定义该类型的变量,因此在内存中并没有开辟任何存储空间;
⑥在程序中可以定义多个结构体类型,不同结构体类型用不同的结构体名来区分。
7、union


8、enum
枚举

9、typedef

10、宏-#define


优点:只要小心使用会显著提高代码的执行效率,毕竟省去了分配和释放栈帧、传参、传返回值等一系列工作,因此那些简短并且被频繁调用的函数经常用函数式宏定义来代替实现。
三、表达式和基本语句
if语句
for语句
while语句 重点论述循环体的效率。提高循环体效率的基本办法是降低循环体的复杂性。
switch语句 每个case 语句的结尾不要忘了加break,否则将导致多个分支重叠(除非有意使多个 分支重叠); 不要忘记最后那个default 分支。即使程序真的不需要default 处理,也应 该保留语句 default : break; 这样做并非多此一举,而是为了防止别人误以为你忘了 default 处理。
goto语句——避免使用
分号只出现在两个地方
①for循环
for(循环变量赋初值;循环条件;循环变量增值)
语句
②函数结束
无限循环实现方法
①while(1)
②for(;;)
交换a,b的值
①中间变量
t=b;
b=a;
a=t;
②位运算(异或)
a=a^b;
b=a^b; //b=(a^b)^b=a^(b^b)=a^1=a
a=a^b //a=a^b=(a^b)^a=(a^a)^b=1^b=b
③
a=a+b;
b=a-b; //b=(a+b)-b=a;
a=a+b; //a=a+b-a=a
四、预处理
五、位运算





浙公网安备 33010602011771号