博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于C语言的 可移植的数据类型
阅读量:4112 次
发布时间:2019-05-25

本文共 821 字,大约阅读时间需要 2 分钟。

关于C语言的 可移植的数据类型
对于数据类型,我们都知道它是什么,可以说是在熟悉不过的东西了。但是我们真的有关注过它么?被很多人忽视,或许是因为它太过基础了的原因。
拿C语言来说,要知道,在C语言的标准中,它并没有强制要求每种数据类型的具体长度,它实际上严格要求的是每种数据类型的最少长度,也就是说,不同的系统下,不同的编译器下,你定义的数据的实际长度可能是互不相同的。有没有发现什么?是的,这种情况下的移植,存在那些令人头大的问题(鬼知道会发生什么)。所以一种神奇的东西出现在了我们眼前--可移植的类型(inttypes.h)。
inttypes.h头文件里面到底装了些什么神奇的东西呢?比如说里面定义的 uint32_t,它定义的是32位无符号整型,32位长度,在不同的系统中,它可能是unsigned int 也可能是 unsigned long 。是的,无论实际是什么类型,他们的实际长度是一致的,绝对能容纳下我想存储的数据。与这类型同类的,被称之为确切长度类型(exact width type)。
是的,他们不是C语言的标准数据类型,他们是一群在头文件inttypes.h中,用typedef定义出的一群新的类型名。对这个头文件了解的应该知道,uint32_t,在实际使用中不是最合适的,最合适的还是最小长度类型(minimum width type)。例如:int_least8_t,这对应的是int8_t,但不同的是无论所在系统中是否有int8_t,我们都能得到一个不小于8位的类型。
你以为这就是结束?光有定义可不行,我们还需要有与之相对的方式让我们能够,把数据再呈现出来。不用担心,inttypes.h已经给我们准备好了,例如:
int_least16_t my16; 
printf("我的16位数据 = "PRId16"\n",my16);
如果你感兴趣,不妨去看看inttypes.h的源代码,你会获得更多你想知道的。

转载地址:http://nmmsi.baihongyu.com/

你可能感兴趣的文章
The Necklace UVA - 10054
查看>>
找连续数 HDU - 5247
查看>>
Counting Stars HDU - 6184
查看>>
Credit Card
查看>>
Winter is here
查看>>
Game of Sum UVA - 10891
查看>>
codeforces
查看>>
Codeforces Round #503 (by SIS, Div. 2)——A. New Building for SIS
查看>>
Codeforces Round #503 (by SIS, Div. 2)-B. Badge
查看>>
Codeforces Round #503 (by SIS, Div. 2)-C. Elections
查看>>
Codeforces Round #503 (by SIS, Div. 2)-D. The hat
查看>>
Codeforces Round #502 (in memory of Leopoldo Taravilse, Div. 1 + Div. 2)-B. The Bits
查看>>
Codeforces Round #502 (in memory of Leopoldo Taravilse, Div. 1 + Div. 2)-C. The Phone Number
查看>>
Codeforces Round #502 (in memory of Leopoldo Taravilse, Div. 1 + Div. 2)-D. The Wu
查看>>
Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)-C. Bracket Subsequence
查看>>
Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)-D. Array Restoration
查看>>
Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)-E. Down or Right
查看>>
Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)-C. Plasticine zebra
查看>>
D - happy happy happy HDU - 6196(剪枝+中途相遇+搜索)
查看>>
B - K-th Number HDU - 6231
查看>>