两分钟弄懂C语言为什么要定义不同的数据类型,有多注重细节
发表于: 2018-11-01 08:42:09 | 已被阅读: 27 | 分类于: C语言
上次我们说到,计算机内部都是用 0 1 以二进制计数的方式存储数据的。事实上,C 语言定义了一些不同的数据类型,比如 char,short int,long int,float,double 等。既然都是用 0 1 记录的数据,那为何还要分数据类型呢?
为何 C 语言要定义不同的数据类型
首先需要明白的是,char,short int,long int,float,double 数据类型占的字节数是不同的,也就是说计算机用于存放这些不同的数据类型,所用的空间是不一样的。
char 类型一般只占一个字节,short 通常占两个字节,其他类型有时候常常因计算机的架构不同,占用空间会有所差异。
我们知道,C语言是一门极其重视效率的语言,优秀的C程序员应该使用更少的资源,以更好的效率去完成工作。举一个例子,假设编程时需要一个变量,这个变量表示一个范围从 0 到 100 变化的整数。当然,这时使用任意一种整型类型(char,short int,long int等)都可以。但是,最好的办法是使用 char 类型,因为无符号的 char 类型能够表示从 0 到 255 的整数,这足够了。使用其他整型,虽然也能完成工作,但是却浪费了一部分空间。
还记得在《》一节中,C语言语句和机器指令的对应关系吗?
说了这么多空的,我们来看一个实例,下面这个程序首先定义了一个 char 变量,一个 double 变量,然后分别对这两个变量赋值。顺便把各种数据类型占用空间大小打印出来了。
#include <stdio.h>
int main()
{
char ic;
double dd;
ic = 1;
dd = 1.1;
printf("%ld, %ld, %ld, %ld, %ld\n",
sizeof(char), sizeof(short int),
sizeof(long int), sizeof(float),sizeof(double));
return 0;
}
编译执行,输出 “1,2,8,4,8”,不同的机器可能有所差异,但这不是重点,弄清楚不同的数据类型占用的空间不同就可以了。我们更关心的是,计算机使用不同的数据类型,会有效率上的差异?答案是肯定的,现在一起来看看这个程序,计算机是如何解释运行的。
所以,使用C语言编程,是极其灵活的,也是极其重视细节的。能够用两分力完成的工作,绝对不要用三分力。优秀的C程序员编写的代码执行效率,常常比不优秀的C程序员编写的代码高得多。