C语言虽然是基础,但实际上是要求学者已经具备入门的能力,然后通过本章节将C语言里面几个比较重要的板块进行加深;如果学者对C语言并不了解,建议先通过网上搜索入门教程学习后再进入本章节。
1.数据类型
1.1 类型定义
C语言标准中,常用的类型如下表格:
类型 |
存储大小 |
取值范围 |
signed char |
1 字节(Byte),8bits |
-128 到 127 |
unsigned char |
1 字节,8bits |
0 到 255 |
short |
2 字节,16bits |
-32,768 到 32,767 |
unsigned short |
2 字节,16bits |
0 到 65,535 |
int |
2/4 字节,16/32bits |
-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
unsigned int |
2/4 字节,16/32bits |
0 到 65,535 或 0 到 4,294,967,295 |
long |
4 字节,32bits |
-2,147,483,648 到 2,147,483,647 |
unsigned long |
4 字节,32bits |
0 到 4,294,967,295 |
float |
4 字节,32bits |
1.2E-38 到 3.4E+38 |
double |
8 字节,64bits |
2.3E-308 到 1.7E+308 |
bool |
忽略 |
true/false |
然而在正常开发过程中,由于平台(主控芯片类型)不同,会导致我们使用的变量有位数的差异,比如表中的int在不同位(16位/32位)机的表现不同,因此我们需要一个抽象定义来解决这个跨平台问题:
实际使用类型 |
存储大小 |
打印符号 |
int8_t |
1 字节(Byte),8bits |
%d |
uint8_t |
1 字节,8bits |
%u或%c或%x(16进制小写,%X大写) |
int16_t |
2 字节,16bits |
%d |
uint16_t |
2 字节,16bits |
%u或%x |
int32_t |
4 字节,32bits |
32位机器%ld,64位机器%d |
uint32_t |
4 字节,32bits |
32位机器%lu,64位机器%u或%x |
int64_t |
8 字节,64bits |
32位机器%lld,64位机器%ld |