C/C++对其基本整数数据类型(char、short、int、long和long-long)有非常宽松的定义。该语言保证它们至少可以表示某个范围的值,但任何特定的平台(编译器、操作系统、硬件)都可能大于此范围。 一个很好的例子很长。在一台机器上,它可能是32位(C所要求的最小值)。另一方面,它是64位。如果你想要一个32位长的整数类型,你会怎么做?这就是int32_t的用武之地:它是特定系统中任何整数类型的别名,正好是32位。 模板:
null
intN_t or uintN_tWhere N is width of integer which can be 8, 16, 32, 64or any other type width supported by the library.
CPP
// C++ program to show use of extended integral types #include <iostream> using namespace std; int main() { uint8_t i; // i with width of exact 8 bits // Minimum value represented by unsigned 8 bit is 0 i = 0; cout << "Minimum value of i : "<< ( int )i << endl; // Maximum value represented by unsigned 8 bit is 255 i = 255; cout << "Maximum value of i : "<< ( int )i << endl; // Warning: large integer implicitly truncated to // unsigned type. It will print any garbage value i = 2436; cout << "Beyond range value of i : " << ( int )i << endl; return 0; } |
输出:
In function 'int main()':19:7: warning: large integer implicitly truncated to unsigned type [-overflow] i = 2436; ^Minimum value of i : 0Maximum value of i : 255Beyond range value of i : 132
不同的变体 1.固定宽度无符号8位整数: uint8_t 这意味着给我一个8位的无符号整数。 2.最小宽度无符号8位整数: 至少 这意味着给我最小类型的无符号整数,至少有8位。针对内存消耗进行了优化。 3.最快最小宽度无符号8位整数: uint_fast8_t 这意味着给我一个至少8位的无符号整数,这将使我的程序更快。出于对齐的考虑,它可能会选择更大的数据类型。优化了速度。 因此,uint8_t保证正好是8比特宽。uint_least8_t是保证至少8位宽的最小整数。uint_fast8_t是保证至少8位宽的最快整数。 所以扩展积分类型有助于我们写作 便携式的 和 有效率的 密码 本文由 罗希特·卡斯尔 。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END