【问题标题】:Are there any advantages in using size_t instead of unsigned int? [duplicate]使用 size_t 代替 unsigned int 有什么好处吗? [复制]
【发布时间】:2016-09-20 03:13:18
【问题描述】:

例如,

int len1=strlen(字符串);

size_t len1 = strlen(string1)

使用 size_t 对编译器行为或代码运行时间或内存有何影响? 我完全知道其中的区别,之前在另一个帖子中已经回答了这个问题,但我担心 RAM 的行为。

【问题讨论】:

    标签: c string size-t


    【解决方案1】:

    size_t 可以存储一个数组可以获得的最大大小,因为它基本上可以与可寻址的内存空间一样大。

    unsigned int 仅由其最小范围(0 到 65535)定义,但可能更大。例如,您希望它在 32 位机器上是 32 位的。

    【讨论】:

      【解决方案2】:

      size_t 未签名,而 int 已签名。此外,在某些平台上,SIZE_MAX 可能大于sizeof(int)。因此,要生成可移植代码,您应该使用size_t(参见第 7.18.3 节)。

      数据类型:size_t

      这是一个无符号整数类型,用于表示对象的大小。 sizeof 运算符的结果就是这种类型,并且 malloc(请参阅无约束分配)和 memcpy 等函数 (请参阅复制字符串和数组)接受这种类型的参数 指定对象大小。在使用 GNU C 库的系统上,这将是 unsigned int 或 unsigned long int。

      source

      【讨论】:

      • 所以生成的bin文件会有内存差异(我的MC面临内存限制)?谢谢你的回答!!
      猜你喜欢
      • 2018-08-25
      • 2021-06-13
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 2010-09-13
      • 1970-01-01
      • 2012-05-18
      • 2013-03-06
      相关资源
      最近更新 更多