objective-c - ":"整数赋值运算符

标签 objective-c c integer

<分区>

我正在查看 Xcode 中的 UIViewController header ,我看到了一些我以前从未遇到过的东西。它位于 struct 中,所以我假设它是一个成员变量,但它的分配方式对我来说是新的。这里是缩短版(struct 是 47 行)。

struct {
    unsigned int appearState:2;
    unsigned int isEditing:1;
    unsigned int isPerformingModalTransition:1;
    unsigned int hidesBottomBarWhenPushed:1;
    unsigned int autoresizesArchivedViewToFullSize:1;
    // many more : assignments
} _viewControllerFlags;

有人可以阐明 : 的作用吗?它类似于 C++ 变量声明语法 (bool b(true);),还是完全不同的东西?可能是一些引用类型,例如 *&

最佳答案

':' 允许对相同(unsigned int)的各个位进行赋值(以及以后的引用)。

appearState gets 2 bits,

因此“appearState”可能包含值:仅 0、1、2 或 3。

isEditing gets 1 bit,

'isEditing' 可能包含值:仅 0 或 1。

...etc.

关于objective-c - ":"整数赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464494/

相关文章:

java - 在Java中如何在没有地板的情况下进行划分?

algorithm - 使用整数项计算矩阵幂

ios - Objective-C:如何从 POST 方法返回响应?

objective-c - Objective C - 定义宏来调用方法?

c - 标准库 include 应该写在哪里? .c 还是 .h 文件?

c - 如何在 C 中执行 shell 脚本?

iphone - 如何在 UITextView 中实现简单的 'live' 字数统计

ios - 如何给出特定的手势识别器

java - Zlib Java 与 C 的基准测试

c++ - 为什么 -2147483648 和 (int)-2147483648 不同