iphone - 在 objective-c 中使用 c 库

标签 iphone c objective-c

我在 objective-c 中创建此 c 结构时遇到问题。

typedef struct huffman_node_tag
{
    unsigned char isLeaf;
    unsigned long count;
    struct huffman_node_tag *parent;

    union 
    {
        struct 
        {
            struct huffman_node_tag *zero, *one;
        };
        unsigned char symbol;
    };
} huffman_node;

我在“unsigned char symbol variable”上方的 union 类型末尾和结构类型末尾收到此警告

warning: declaration does not declare anything

然后当我做这样的事情时:

huffman_node *p = (huffman_node*)malloc(sizeof(huffman_node)); 
p->zero = zero; 

我得到这个编译错误:

error: 'huffman_node' has no member named 'zero'

为什么这不起作用?我设置不正确吗?有没有人以前经历过这种情况?

最佳答案


typedef struct huffman_node_tag
{
    unsigned char isLeaf;
    unsigned long count;
    struct huffman_node_tag *parent;

    union 
    {
        struct 
        {
            struct huffman_node_tag *zero, *one;
        };    // problematic here!
        unsigned char symbol;
    }; // another problem here!
} huffman_node;

根据用于解释代码的 C 方言/编译器,您可能不允许在没有名称的情况下声明 structunion。试着给他们起名字,看看会发生什么。或者,您可能想尝试更改您正在使用的 C 方言。

关于iphone - 在 objective-c 中使用 c 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936789/

相关文章:

iphone - 如何替换整个操作系统的默认字体

javascript - 如何在IOS浏览器中设置网站cookie?

c - 衡量分支预测命中率的方法

c - if 和 else if 与 strcmp 序列错误/重叠

c - 两个大数 char 类型的最高有效位之和

ios - 如何隐藏委托(delegate)中的导航栏

objective-c - 总是使用 isEqual : in Objective-C for object comparison? 是一种好的形式吗

iphone - UITextView 只是水平滚动帮助

iphone - 无法阻止 AVAudioPlayer 播放

ios - 在 pdf 上添加注释