关于C#:数字后的“ u”是什么意思?


What does 'u' mean after a number?

你能告诉我数字后面的" u"到底是什么意思吗?

1
#define NAME_DEFINE 1u

像C语言中的1这样的整数文字始终为int类型。 intsigned int相同。可以在文字上添加uu(等效),以确保其为unsigned int,以防止出现各种意外的错误和奇怪的行为。

此类错误的一个示例:

在int为16位的16位计算机上,此表达式将得出负值:

1
long x = 30000 + 30000;

两个30000文字均是int,并且由于两个操作数都是int,所以结果将是int。一个16位带符号的int最多只能包含32767的值,因此它将溢出。因此,x将获得一个奇怪的负值,而不是预期的60000。

代码

1
long x = 30000u + 30000u;

但是将表现出预期的效果。


这是定义无符号文字整数常量的一种方法。


这是一种告诉编译器常数1用作无符号整数的方式。一些编译器假定没有后缀(如" u")的任何数字均为int类型。为避免这种混淆,在将常量用作无符号整数时,建议使用类似" u"的后缀。也存在其他类似的后缀。例如,对于浮点数'f'使用。


它的意思是" unsigned int",基本上它的作用类似于强制转换,以确保在编译时将数字常量转换为适当的类型。