无符号短整型和USHORT有什么区别?

4
什么是 USHORTunsigned short 的区别,何时应该使用它们?

http://en.wikipedia.org/wiki/Integer_(computer_science) - Brian Roach
2个回答

10

USHORT是一个宏,不是C++语言的正式组成部分(它可能在某个地方被定义或typedef)。unsigned short是由C++语言定义的官方类型,作为可以至少容纳0到65535之间数字的整数。

使用unsigned short,您的代码将具有可移植性-除非公司的编码标准要求,否则不要使用USHORT。


3
请注意,typedef 不是宏定义。 - Seth Carnegie
我在这里看了一些示例代码:http://www.cplusplus.com/forum/lounge/17053/,在第一个代码块中。你能看一下并找出他们为什么使用它吗? - Stas Jaro
4
@stas说的只是一个微软的习惯用法,没有其他原因,仅仅是为了跟其他人做的一样。这就像在C语言中写void foo(void)时的C习惯用法一样,在C++中第二个void参数是没有意义的。或者在C++中,将get写在函数名前面并命名为double getSin()也只是Java语言的习惯用法,get没有实际作用,只是视觉上的噪音。 - Cheers and hth. - Alf
看起来像是微软的 C++ - 这是 Windows 团队采用的特定风格,而 Microsoft 编译器定义了这些类型。如果您正在编写类似于这样的代码,则通常遵循现有代码的风格是惯例。 - Adrian Cornish

2

unsigned short是标准的C++表达式,而USHORT则不是。精确的定义可以在维基百科文章整数(计算机科学)中找到。

有时,在头文件中我们使用typedef unsigned short USHORT。然后USHORT也可以像unsigned short一样使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接