关键字
在C语言中,关键字一共有32个,分别如下
short | int | long | float | double | char |
---|
unsigned | signed | auto | struct | union | enum |
const | extern | register | static | volatile | void |
if | else | switch | case | default | for |
do | while | goto | return | break | continue |
typedef | sizeof | | | | |
对于这些关键字,进行了如下细分。 | | | | | |
声明类关键字
声明类关键字,主要包含:基础数据类型声明、符号声明和特殊的声明三类,不同类型的声明关键字可以相互组合,以达到不同的声明效果。
基础声明关键字
short | int | long | float | double | char |
---|
这六大关键字划分为基础声明关键字,在嵌入式编程中,对于支持C99的编译器,建议使用 <stdint.h> 头文件中定义的数据类型,而不是直接使用基础的数据类型。 | | | | | |
符号声明关键字
unsigned | signed |
---|
unsigned 声明为无符号位的数据类型。 | |
signed 声明位有符号位的数据类型。 | |
特殊声明关键字
auto | struct | union | enum |
---|
const | extern | register | static |
volatile | void | | |
数据类型章节具体介绍这些特殊关键字的作用。 | | | |
语句类关键字
语句类关键字主要服务于三大基础语句,语句类关键字是构成基础语句的基石。
分支语句关键字
if | else | switch | case | default |
---|
上述关键字把他们划分到分支语句中,它们负责程序中分支判断的部分,打断正常的执行流程。 | | | | |
循环语句关键字
for | do | while |
---|
上述关键字负责使用循环语句,不同的循环语句适用不同的场景。 | | |
跳转语句关键字
goto | return | break | continue |
---|
上述关键字会打断正常的程序流程,跳转到指定位置执行程序。 | | | |
特殊类关键字
typedef | sizeof |
---|
对的,sizeof是一个关键字,是一个关键字,是一个关键字。 | |
数据类型
从C语言诞生开始,数据类型进行两次增加
最初K&R给出的基础类型 | C90标准添加的关键字 | C99标准添加的关键字 |
---|
int | signed | _Bool |
long | void | _Complex |
short | | |
unsinged | | |
char | | |
float | | |
double | | |
这十一个关键字构成了当今C语言中的基本数据类型,其中需要注意的时,对于_Bool和_Complex需要编译器支持C99并且引入<stdbool.h>和<complex.h>来实现。
对于基础数据类型,使用时需要注意的是数据的溢出风险。在嵌入式系统中,不同数据类型的长度可能跟使用的平台相关。还需要注意的是,在没有FPU的硬件平台上尽量不要进行浮点运算,在具有FPU的硬件平台上,尽量使用float进行浮点运行。
对于基础数据类型的符号,在C语言中,需要注意的就是有符号位和无符号位的比较问题,当两个无符号数比较大小,两个有符号数比较大小时都不会有问题,但是当一个有符号数和一个无符号数比较大小时,两个数据都会被默认转换为无符号数,这样比较出来的大小可能不是我们所需要的。