Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 无符号短整型和无符号短整型之间的差异_C_Unsigned - Fatal编程技术网

C 无符号短整型和无符号短整型之间的差异

C 无符号短整型和无符号短整型之间的差异,c,unsigned,C,Unsigned,c语言中的无符号短整型和无符号短减型之间有区别吗?如果有,请问有什么区别?我试着在网上找,但找不到任何有价值的东西 unsigned short int x1; unsigned short x2; 最后,如果有差异,我如何才能将它们分别投射到对方身上呢?仅使用short是一种书写short int的速记方式(并非双关语)。仅仅一个long是long int的缩写,它们是同义词。如果你的编译器对它们做了一些不同的操作,它就会被破坏。没有区别。请尝试sizeof操作符: main() { u

c语言中的无符号短整型和无符号短减型之间有区别吗?如果有,请问有什么区别?我试着在网上找,但找不到任何有价值的东西

unsigned short int x1;
unsigned short x2;

最后,如果有差异,我如何才能将它们分别投射到对方身上呢?

仅使用
short
是一种书写
short int
的速记方式(并非双关语)。仅仅一个
long
long int
的缩写,它们是同义词。如果你的编译器对它们做了一些不同的操作,它就会被破坏。

没有区别。请尝试
sizeof
操作符:

main()
{
  unsigned short int x1;
  unsigned short x2;

  printf("%d/%d\n", sizeof x1, sizeof x2);
}

两者没有区别

第二个被认为是一个int,只是省略了。

来自(省略了不相关的部分)(强调我的部分):

6.7.2.2:

每个声明的声明说明符中应至少给出一个类型说明符, 在每个结构声明和类型名称的说明符限定符列表中。每一份 类型说明符应为以下多集之一(如果有 是每个项目的多个集合);类型说明符可能以任何顺序出现,可能是 与其他声明说明符混合

  • short
    signed short
    short int
    ,或
    signed short int
  • unsigned short
    ,或
    unsigned short int
6.7.2.5:

每个逗号分隔的多集都指定相同的类型


正如我在另一篇评论中所说:即使它们是相同的(而且你的答案是正确的),你也不能用一个例子来证明某件事。11是素数,但这并不意味着所有奇数都是素数。顺便说一句,
int
unsigned int
也有相同的大小,但它们不相同。此外,类型的大小可以在不同的实现之间更改。没有区别。重要的是,它们是相同的,这并不保证它们的大小。它们可以是2字节,4字节,100字节,随便什么。只要它们的长度不超过
int
。如果您想链接到更方便的C11在线副本,请点击这里:我会在评论中保留您的链接,但会在答案中保留指向PDF的链接。pdf的好处在于,您可以下载并将其放在桌面上,并且更易于访问。不过链接不错,引用肯定更好。@Daniel如果我通过插座连接发送短消息,我会遇到平台问题吗?