结构创建错误/警告的Xcode typedef

Posted

技术标签:

【中文标题】结构创建错误/警告的Xcode typedef【英文标题】:Xcode typedef of struct creating error / warning 【发布时间】:2016-02-05 04:45:57 【问题描述】:

只是想知道我是在犯一些愚蠢的错误还是它的 Xcode。

我有一个结构的 typedef,现在在比较两个相同类型的变量之间的指针时,在 Xcode 中创建了一个不兼容的指针,但在 linux 中却没有。谁能告诉我这里发生了什么。

typedef struct Node

    // treeNode has a hidden Address
    int size;
    struct treeNode *left;
    struct treeNode *right;

 treeNode;

treeNode* FindMin(treeNode *node)

    if(node==NULL)
    
        return node;
    
    if(node->left) 
        return FindMin(node->left); // Error :- treeNode is incompatible with Node
    else
        return node;



// If I type cast it .. Show no sign of error..


treeNode* FindMin(treeNode *node)

    if(node==NULL)
    
        /* There is no element in the tree */
        return node;
    
    if(node->left) 
        return FindMin((struct Node *)node->left); // No Error here
    else
        return node;

【问题讨论】:

您是否收到来自 Xcode 的警告?还是编译器错误?如果是这样,你得到了什么错误,你的编译器标志是什么? 【参考方案1】:

像这样声明树节点

typedef struct treeNode
...

而不是

typedef struct Node
...

您在下面的声明 struct treeNode *left; 中访问 struct treeNode,但将结构声明为 struct Node

【讨论】:

以上是关于结构创建错误/警告的Xcode typedef的主要内容,如果未能解决你的问题,请参考以下文章

swift 3 present from appdelegate 错误:警告:尝试显示〜其视图不在窗口层次结构中

XCode 错误/警告问题/如何对 XCode 缓存进行核对

xcode将警告当做错误处理

从 Cmake 创建 Xcode 项目包含不需要的编译器标志

在故事板xcode中直接从视图控制器警告启动的Segues

SourceKitService 终止,没有 Xcode 警告或错误