开发者

Expected identifier or '(' before '.' token

I'm new to Objective-C so I'm using a book to get to grips with it. I'm at a bit where it's explaining structs and I can't for the life of me get them to work.

I have the following code:

int main (int argc, char *argv[])
{

    struct node
    {
        int nodeID;
        int x;
        int y;
        BOOL isActive;
    };

    typedef struct node myNode;

    myNode.nodeID = 1;

}

and I'm getting the error written in the title. Every time I search for this error online I found different variations such as 'before '>' token' or 'before '}' token' but i can't find anything with开发者_StackOverflow中文版 the '.' token and it's really frustrating and I assume it's somethings ridiculously trivial and basic. Any help would be appreciated.


I believe you're trying to modify the actual type itself. nodeA is now the type of that struct, much like int. You need to do something like nodeA myNode, then you would be able to perform myNode.nodeID = 1 without error.


I've got it sorted now, I used the following and it seems to be fixed now:

int main (int argc, char *argv[])
{    

    struct node
    {
        int nodeID;
        int x;
        int y;
        BOOL isActive;
    };

    struct node myNode;

    myNode.nodeID = 1;
    myNode.x = 100;
    myNode.y = 200;
    myNode.isActive = TRUE;

}

Thanks for all your help Darth! :)


I think the problem with the original code was, it was trying to make myNode a type name using typedef. Thus, myNode is NOT a variable that assignment can happen to. Rather, it was another alias for struct node.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜