嵌入式学习2022.1.19+1.21——C语言基础与提高

一、基本数据类型

嵌入式学习2022.1.19+1.21——C语言基础与提高_第1张图片

整型

 

 浮点型

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第2张图片

 表示方法:

类型、长度范围、表示方法、每种类型的数据允许进行的运算

尾数+指数

补码:正数本身、负数取反加一(避免0也有正负)

反码:正数本身、负数取反

Strlen(a):不包括\0,返回字符长度

Sizeof(a):包括\0,返回数组长度,与字符多少无关

转义字符都需要加上“\”

\a蜂鸣器

\b 退格

\d tab跳格

\t纵向跳格

\2跳到当前航的第一列

\f走纸换页,打印机用到

\ddd一到三位八进制数代表的ASCALL码

\xhh表示一到两位十六进制数

数组、结构体、枚举等后续补充

嵌入式学习2022.1.19+1.21——C语言基础与提高_第3张图片

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第4张图片

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第5张图片

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第6张图片

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第7张图片

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第8张图片

二、关键字

1、register嵌入式学习2022.1.19+1.21——C语言基础与提高_第9张图片

2、static 

嵌入式学习2022.1.19+1.21——C语言基础与提高_第10张图片

3、const

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第11张图片

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第12张图片

4、volatile

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第13张图片

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第14张图片

5、extern

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第15张图片

6、struct

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第16张图片

①“结构体名”用作结构体类型的标志;

②花括弧内是该结构体中的各个成员,由它们组成一个结构体;在结构体内对各成员都应进行类型声明;

③“成员表列”也称为域表。每个成员也称为结构体
中的一个域,成员名命名规则与变量名一样;

④每个成员名前的类型标识符可以为已经定义了的任
意类型,当然可以是结构体类型标识符,即结构体成员也可以是另一个结构体变量。
⑤此处只是构造出一个新的类型,并没有定义该类型的变量,因此在内存中并没有开辟任何存储空间;

⑥在程序中可以定义多个结构体类型,不同结构体类型用不同的结构体名来区分。

7、union

嵌入式学习2022.1.19+1.21——C语言基础与提高_第17张图片

嵌入式学习2022.1.19+1.21——C语言基础与提高_第18张图片

 8、enum

枚举

嵌入式学习2022.1.19+1.21——C语言基础与提高_第19张图片

 9、typedef

嵌入式学习2022.1.19+1.21——C语言基础与提高_第20张图片

 10、宏-#define

嵌入式学习2022.1.19+1.21——C语言基础与提高_第21张图片

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第22张图片

 优点:只要小心使用会显著提高代码的执行效率,毕竟省去了分配和释放栈帧、传参、传返回值等一系列工作,因此那些简短并且被频繁调用的函数经常用函数式宏定义来代替实现。

三、表达式和基本语句

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

四、预处理

五、位运算

嵌入式学习2022.1.19+1.21——C语言基础与提高_第23张图片

嵌入式学习2022.1.19+1.21——C语言基础与提高_第24张图片

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第25张图片

 嵌入式学习2022.1.19+1.21——C语言基础与提高_第26张图片

你可能感兴趣的:(c语言,开发语言,后端)