【嵌入式C语言】2.关键字

0.前言

  • 本章主要整理关键字的使用。
  • 何时用?怎么用?为什么用?
  • 关键字:编译器预先定义了一定意义的字符串(32个),不依赖于操作系统或IDE软件。


1.杂项关键字及printf

//非关键字
printf//标准C语言中提供的库函数,依赖于操作系统或IDE软件
//杂项关键字
sizeof//编译器给我们查看内存空间容量的一个工具
return//返回的概念

2.数据类型关键字

  • C语言操作对象:资源/内存(内存类型的资源,LCD缓存、LED等等)。
  • 资源属性(大小)。
  • 数据类型:用于限制内存大小的关键字。
//数据类型关键字;8bit=1B
//整形类型
char	//硬件处理的最小单位,8bit,最大256;大多情况面向硬件开发使用
int		//系统一个周期所能接受的最大处理单位,系统位数,可能是1B(8位机),2B(16位机),4B(32位机),8B(64位机)
long	//特殊长度的限制符
short	//特殊长度的限制符
//数据类型的限制标志;负数按补码计数,除符号位外,按位取反加1
unsigned//无符号数(数据),最高位是符号位
signed	//有符号数(数字),默认,最高位是数
//浮点数
float	//4B;1.0f是单精度
double	//8B;1.0是双精度
//声明标志(占位标志,不能使用计算,语义符)
void	
ASCII码表 8bit

在这里插入图片描述

2.自定义数据类型

//基本元素的集合
struct//元素之间的和,结构体(元素顺序有要求),常用关键字
struct myabc{
	unsigned int wtcon;
	unsigned int wtdat;
	unsigned int wtcnt;	
	unsigned int wtclrint;
}
struct myabc mybuf;//使用自定义数据类型定义数据
//共用体(联合体),共用起始地址申请内存空间,技巧性代码
union
unionmyabc{
	char a;
	int b;
}
union myabc abc;//使用自定义数据类型定义数据
//枚举(enumerate),被命名的整形常数的集合,集合只占一个整形(不同于结构体)
//只用来表示内容是一个组合,便于程序员认识,无强制性
enum
#define MON 0
#define TUE 1
#define WED 2
//等同于
enum abc {MON = 0, TUE,WED };//abc可省略;=0可省略,依然表示0,TUE为1,依次...
enum 枚举名称{常量列表};
//数据类型的别名
typedef
typedef int a;
a x;//x是int型

3.逻辑结构

//if,else
	if(表达式1) 
	{语句s;}
	else if(表达式2) 
	{语句s;}
	else if(表达式3) 
	{语句s;}
	else
	{语句s;}
//while
//先判断“表达式”是否成立,如果成立
//则执行{}里的语句,执行完再次判断“表达式”
//是否依然成立,成立则继续执行{},不成立则结束
	while(表达式) 
	{
		语句;
		....;
	}
//do while
//用法:先执行{}里的语句,执行完后,判断
//"表达式"是否成立,如成立,继续执行{};
//如不成立,则结束循环
do{
		语句1;
		...;
	}while(表达式);

//switch ,case,default
//运用场景:多分支,但是每种分支只运行一次
	switch(整型)
	{
		case 1:break;
		case 2:
		default:
	}
//do,while, for
//while,do while,for 三个循环结构几乎在程序中可以实现替换
//所以我们判断在什么情况运用什么循环结构
//很少使用
for:次数
当出现计数循环时,首先想到for
while:条件
当出现条件判断循环时,首先想到while
continue,break,goto
continue:跳出本次循环
break:跳出循环体
goto:运用于在同一函数内部跳转//很少使用,一般仅在函数内部跳转

4.类型修饰符

类型修饰符的类型,是数据类型的类型,即C语言用来限制数据在内存中大小的类型。
类型修饰符用来描述数据类型在内存空间中的位置,用在数据类型前。

auto
//定义:限制变量定义在栈空间上的修饰符
//在定义一个变量后,默认变量分配的内存可读可写的区域,即auto可省略
//即:
int a;
//相当于
auto int a;
//区域如果在{}里面,默认数据存储在栈空间。
register
//定义:限制变量定义在寄存器上的修饰符
//特点:
//1.定义一些快速访问的变量。
//2.编译器会尽量的安排CPU的寄存器去存放这个变量,如果寄存器空间不足,变量还是存储在存储器中。
//3.不能取变量地址。
static
//定义:静态变量
//应用场景:static修饰的局部变量存放在全局数据区的静态变量区。
		//static修饰的局部变量如未初始化会自动初始化为0;延长了局部变量的生命周期,
		//直到程序运行结束以后才释放。 同时,离开定义它的函数后不能使用,
		//但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。
//修饰3种数据:
//1.函数内部变量
int fun()
{
int a;====>static int a;
}
//2.修饰函数外部变量
int a;====>static int a;
int fun()
{
}
//3.函数的修饰符
int fun() ===>static int fun()
const
//应用:定义只读的变量
//本意是为定义只能读不能改写的变量,但是还是可以通过特殊方法进行改写
extern
//外部声明
volatile
//不是描述数据类型在内存空间中存放位置的修饰符
//定义:告知编译器编译方法的关键字,不优化编译
//修饰变量的值的修改,不仅仅可以通过软件修改,还可以通过硬件修改,等其他方式修改。
volatile int a=1;//当键入时,a=0.
if(a==0)
{
}
//优化编译时,检测a在软件中不修改,则不进行取a地址操作,直接进入if判断。

参考资料链接: 嵌入式C语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不僈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值