代码中数据类型如何去理解并正确
目录
一、引言
二、数据类型
unsigned char(无符号字符数据类型)
unsigned char(放在函数名称前)
unsigned char(函数后面括号里的内容)
int(整数类型)
int( 放在函数名称前)
int(函数后面括号里的内容)
float(浮点数类型)
float ( 放在函数名称前)
float (函数后面括号里的内容)
char(字符类型)
char(放在函数名称前)
char(函数后面括号里的内容)
void(空类型)
void (放在函数名称前)
void (函数后面括号里的内容)
一、引言
写了这么多代码,但我发现我并不熟悉他们,不知道一些代码数据类型为什么这样用,有什么区别,由此我写下这篇文章,帮自己重新认识一下代码中不同的数据类型。在前面我写过一些代码,我先把他们举例子出来讲解,再系统的讲解其他的。
二、数据类型
unsigned char(无符号字符数据类型)
“unsigned char”是一个无符号字符数据类型,用于存储0到255之间的整数值,它占用的内存较少(1字节),适合存储小范围的整数值。unsigned char = uint8_t 8位的数,例如(0000 1111)这个unsigned char很有意思,它可以放在函数名称前,也可以放在函数后面括号里。这是我前面代码里写过的例子。
void Seg_Tran(unsigned char *seg_string,unsigned char *seg_buf)
unsigned char Key_Read(void)
unsigned char(放在函数名称前)
作用:这个就是告诉程序,这个函数最后会给出一个“unsigned char”类型的结果。你可以把“unsigned char”理解为一种数据的“标签”,它规定了这个函数最终返回的数据是什么样的。就像你让别人给你带东西,你告诉别人我要一个小玩具(假设小玩具代表“unsigned char”类型的数据),别人最后给你的东西就应该是符合这个要求的小玩具。
在代码中的体现 :
当这个函数被执行完后,如果它有一个返回值(就是它最终给出的结果),这个返回值就会按照“unsigned char”这个标签来定义它的大小和性质。例如,在代码里,你可能会看到像这样的一行:
unsigned char key = Key_Read();
这里的意思是,调用“Key_Read”这个函数,然后把函数给出的符合“unsigned char”类型的结果放到变量“key”里面。
unsigned char(函数后面括号里的内容)
作用 :这就像是你给朋友提供了两个工具(或者两个信息来源),让他根据这两个东西来完成任务。这里的“unsigned char *seg_string”和“unsigned char *seg_buf”就像是两个不同用途的工具,函数需要这两个工具来处理数据。
在代码中的体现 :
unsigned char *seg_string这是一个指针,指向一个字符数组(字符串)。可以理解为:这是你要处理的数据所在的地址。
unsigned char *seg_buf这是一个指针,指向一个用于存储转换结果的缓冲区。可以理解为:这是你要把处理后的数据存放到哪里的地址。
int(整数类型)
int是一个整数数据类型,用于存储整数值。它可以存储正整数、负整数和零。可以存储的范围一般为-65536-65535
int(
放在函数名称前)
作用 :告诉程序,这个函数最后会给出一个 int
类型的结果。
在代码中的体现 :
int GetNumber()
{return 42;
}int main(){int num = GetNumber();printf("The number is: %d\n", num);return 0;
}
这里的意思是,调用 GetNumber
这个函数,然后把函数给出的符合 int
类型的结果放到变量 num
里面。
int(函数后面括号里的内容)
作用:这就像是你给朋友提供了工具(或者信息来源),让他根据这些工具来完成任务。这里的 int a
和 int b
就像是两个工具,函数需要这两个工具来进行计算。
在代码中的体现:
int main()
{int value = 42;PrintNumber(value);return 0;
}void PrintNumber(int a){printf("The value is: %d\n", a);
}
int a
是函数的参数,表示函数需要一个整数作为输入来打印。
float(浮点数类型)
float
是一个浮点数数据类型,用于存储带有小数部分的数字。它通常占用 4 字节的内存空间,可以存储的范围大约为 1.2e-38 到 3.4e+38,但只能保证 6 到 7 位十进制精度。
float
(
放在函数名称前)
作用:告诉程序,这个函数最后会给出一个 float
类型的结果。
在代码中的体现:
float GetPi()
{return 3.14159;
}int main()
{float pi = GetPi();printf("The value of pi is: %f\n", pi);return 0;
}
这里的意思是,调用 CalculateArea
这个函数,然后把函数给出的符合 float
类型的结果放到变量 area
里面。
float
(函数后面括号里的内容)
作用:这就像是你给朋友提供了工具(或者信息来源),让他根据这些工具来完成任务。这里的 float radius
就像是一个工具,函数需要这个工具来计算面积。
在代码中的体现:
int main(){float radius = 5.0;CalculateArea(radius);return 0;
}void CalculateArea(float radius){float area = 3.14159 * radius * radius;printf("The area is: %f\n", area);
}
float radius
是函数的参数,表示函数需要一个浮点数作为输入来计算面积。
char(字符类型)
char
是一个字符数据类型,有符号,存储-256-255
char(放在函数名称前)
作用:告诉程序,这个函数最后会给出一个 char
类型的结果。
在代码中的体现:
char GetGrade(int score){if (score >= 90) return 'A';else if (score >= 80) return 'B';else if (score >= 70) return 'C';else return 'D';
}char grade = GetGrade(85);
这里的意思是,调用 GetGrade
这个函数,然后把函数给出的符合 char
类型的结果放到变量 grade
里面。
char(函数后面括号里的内容)
作用:这就像是你给朋友提供了工具(或者信息来源),让他根据这些工具来完成任务。这里的 char c
就像是一个工具,函数需要这个工具来进行处理。
在代码中的体现:
void PrintChar(char c)
{printf("The character is: %c\n", c);
}PrintChar('A');
char c
是函数的参数,表示函数需要一个字符作为输入来打印。
void(空类型)
void是一个空数据类型,表示没有具体的类型。它可以用于定义返回值为空的函数,或者定义没有参数的函数。
void (放在函数名称前)
作用:告诉程序,这个函数不会返回任何值。你可以把 void
理解为一种“无”的标签,表示这个函数完成任务后不需要返回任何东西。
在代码中的体现:
void PrintMessage()
{printf("Hello, World!\n");
}PrintMessage();
这里的意思是,调用 PrintMessage
这个函数,这个函数完成打印任务后不会返回任何值。
void (函数后面括号里的内容)
作用:这就像是告诉朋友,“我什么都不会给你,你得自己完成任务”。这里的 void
表示这个函数不需要任何外部输入来完成它的任务。
在代码中的体现:
void PrintMessage(void){printf("Hello, World!\n");
}PrintMessage();
void 在括号里表示这个函数不需要任何参数。