Compiler Error C2143 when using a struct
我正在用Visual C ++编译一个简单的.c,并编译为C代码(/ TC)
在要求简单结构的一行上
使用该结构的typedef也是如此。
我忘了在C语言中,您必须在任何代码之前声明所有变量。 因为您已经为该结构创建了一个typedef(因为您使用的是's1'版本),所以您应该这样写:
而不是
这将在C和C ++中都适用
您是否在前一行不小心省略了分号?如果前一行是 编辑:如果您的其余代码是有效的C ++,则可能没有足够的信息来确定问题所在。也许您可以将代码发布到pastebin,以便我们可以看到整个过程。 理想情况下,在将其缩小为较小的过程中,它将突然开始工作,然后您将发现问题! C2143基本上说,编译器得到了一个令牌,它认为在当前情况下是非法的。该错误的含义之一是,实际问题可能在触发编译器错误的行之前存在。正如Greg所说,我认为我们需要查看更多代码来诊断此问题。 我也不确定为什么您在尝试弄清楚为什么它不能编译为C时认为这是有效的C ++代码这一事实有用吗? C ++在很大程度上是C的超集,因此有很多原因使有效的C ++代码在语法上可能不是正确的C代码,尤其是C ++将结构视为类! 如何定义您的结构类型?有两种方法可以做到这一点:
|