【问题标题】:What kind of data is size_t holding?size_t 持有什么样的数据?
【发布时间】:2009-05-14 19:58:59
【问题描述】:

在代码-sn-p 中我看到了这个:

size_t w = CGImageGetWidth(inImage);

文档没有给我任何关于“size_t”的有用信息。有谁知道这是什么?

【问题讨论】:

    标签: iphone objective-c cocoa-touch uikit core-graphics


    【解决方案1】:

    来自here

    无符号整数类型

    size_t 对应于语言运算符 sizeof 返回的整数数据类型,并在头文件(以及其他)中定义为无符号整数类型。

    <cstring>,中,它被用作memchr、memcmp、memcpy、memmove、memset、strncat、strncmp、strncpy和strxfrm函数中参数num的类型,在所有情况下它都用于指定最大数量函数必须影响的字节或字符数。

    它也用作 strcspn、strlen、strspn 和 strxfrm 的返回类型以返回大小和长度。

    【讨论】:

      【解决方案2】:

      size_t 是一种依赖于平台的表示对象大小的方法。它始终是无符号的,但它可以是 32 位平台上的无符号 32 位值或 64 位平台上的 64 位值。在 iPhone SDK 上是 unsigned long

      【讨论】:

        【解决方案3】:

        size_t 是无符号整数的别名 (typedef)。

        【讨论】:

        • 所以我也可以写 NSUInteger w = CGImageGetWidth(inImage); ?
        • 我不认识那个副手,但你应该可以写 uint w = CGImageGetWidth(inImage);。像 size_t 这样的类型定义通常是为了明确目的,而不是定义结构。
        【解决方案4】:

        这是一种在 C 和 C++ 中用于简单表示整数的类型。我相信它只是 int 的 typedef。

        【讨论】:

        • 单一 Unix 规范将其定义为“无符号整数类型”,但您不应该假设任何关于实际宽度的内容。然而,size_t 几乎总是无符号的,而 ssize_t 通常是有符号的,以允许它用 -1 指示错误条件。
        猜你喜欢
        • 2011-10-01
        • 2019-09-04
        • 1970-01-01
        • 1970-01-01
        • 2010-10-04
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        相关资源
        最近更新 更多