[visual-studio]C Windows 中的简单链接的列表

发布时间: 2014/3/1 2:30:21
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

它是很长时间,因为我在 C 编码的现在我不能甚至创建链接的列表:(可能是什么毛病 NodeType 结构?甚至尝试了示例中,仍然出现错误类似于此。

我需要创建链接的列表,并将 linux 和 windows (无需庞大的修改) 上运行。

我编译使用: cl myFile.c 命令。

错误消息:

Microsoft (R) 32 位 C/c + + 优化编译器版本 16.00.40219.01 80 x 86 版权所有 (C) 微软公司。所有权利保留。

unlock.c unlock.c(46): 错误 C2275: '节点': 非法使用这种类型的表达式 unlock.c(17) 作为: 见宣言 》 的 Node unlock.c(46): 错误 C2146: 语法错误: 缺少标识符 'a' unlock.c(46) 之前的;: 错误 C2065: 'a': 未声明的标识符

源代码:

#include <stdio.h>
#include <windows.h>
#include<stdlib.h>


typedef enum {STABLE, RPUSH, LPUSH} STATUS_TYPE;


typedef struct NodeType
{
    struct NodeType* _left;
    struct NodeType* _right;
    int _value;
}Node;

typedef struct AnchorType
{
    struct Node* _mostLeft;
    struct Node* _mostRight;
    STATUS_TYPE _status;
} Anchor;

Node CreateNode(int data)
{
    Node newNode;
    newNode._value = data;
    newNode._left = NULL;
    newNode._right = NULL;

    return newNode;
}


int main()
{
    Anchor anchor;
    anchor._mostLeft = NULL;
    anchor._mostRight = NULL;
    anchor._status = STABLE;


    Node a; //<-- What might be wrong ?

    return 0;
}

谢谢你的帮助。

解决方法 1:

微软的重点是 c + + 编译器和 C 支持是几十年来已过期。

在微软的编译器不支持较新的 C 标准的特点之一是声明一个函数中的变量的能力。

移至顶部,宣言 》,一切都将是确定:

int main()
{
    Anchor anchor;
    Node a; // ok here
    anchor._mostLeft = NULL;
    anchor._mostRight = NULL;
    anchor._status = STABLE;


    //Node a; but not here

    return 0;
}
赞助商