size_t的大小与unsigned int的比较

Mik*_*eMB 13 c c++

有谁知道任何工具链/平台/目标组合,其中的最大值size_t比的最大值unsigned int

我认为C和C++标准原则上允许这样做,并且它(理论上)可能对某些奇怪的MCU有用,但我在实践中从未见过这一点.

注意:
我故意用c和c ++标记这个,因为我对这两种语言的答案感兴趣(如果你的答案是特定于语言的,请说明),我还没有看到任何使用不同大小的工具链/目标组合对于c和c ++中的那些类型无论如何.

o11*_*11c 6

H8/300可以配置为.使用GCC(配置为triple h8300-elfh8300-rtems),这是-mint32标志:

gcc/config/h8300/h8300.h:555:
#define SIZE_TYPE                               \
  (TARGET_H8300 || TARGET_NORMAL_MODE ? TARGET_INT32 ? "short unsigned int" : "unsigned int" : "long unsigned int")
Run Code Online (Sandbox Code Playgroud)

所以当-mint32通过32位时int,size_t基于16位short.

(另请注意,根据该文件中的评论,GCC要求size_t并且void *必须大小相同)