Xcode GCC标准编译规则不同于另一个发行版/版本:结构 前一段时间,我使用的是一个DeV C++ IDE,它运行在Windows下,并附带了MinGW(GCC的Windows端口),现在我移动到Mac OS X豹,我使用代码::用GCC-V4.2(苹果修改版本)的块IDE,它附带XCOD3.3.2。我不知道我的问题是否取决于发行版(Dev cpp)或编译器版本,或者它是GCC的苹果发行版,但我在声明结构化数据时遇到了这种差异

Xcode GCC标准编译规则不同于另一个发行版/版本:结构 前一段时间,我使用的是一个DeV C++ IDE,它运行在Windows下,并附带了MinGW(GCC的Windows端口),现在我移动到Mac OS X豹,我使用代码::用GCC-V4.2(苹果修改版本)的块IDE,它附带XCOD3.3.2。我不知道我的问题是否取决于发行版(Dev cpp)或编译器版本,或者它是GCC的苹果发行版,但我在声明结构化数据时遇到了这种差异,xcode,gcc,struct,codeblocks,Xcode,Gcc,Struct,Codeblocks,在旧的Dev CPP中,在Windows上运行时,我只是简单地忽略了这一点 常数int max=1000 结构数据{ char thing[max]; int anotherthing; } 然后我将其引用到如下函数: 使某些函数无效(数据) 它工作得很好。在使用Code::Blocks IDE的Xcode版本编译器上,我遇到一些错误,它无法编译 new types may not be defined in a return type 错误:“max”未在此作用域中声

在旧的Dev CPP中,在Windows上运行时,我只是简单地忽略了这一点

常数int max=1000

结构数据{

   char thing[max];
   int anotherthing;
}

然后我将其引用到如下函数:

使某些函数无效(数据)


它工作得很好。在使用Code::Blocks IDE的Xcode版本编译器上,我遇到一些错误,它无法编译

    new types may not be defined in a return type
错误:“max”未在此作用域中声明


谢谢

我在右边的一行做了一个带有错误内容的评论

包括 使用名称空间std; 常数int max=1000

类型定义结构数据{

short pos;
char cont[max]; //error: 'max' was not declared in this scope
})

…然后是主要功能:

int main(){


…继续使用您发布的代码片段中的好代码

,我看不出有任何错误。它应该可以编译而不会出现您遇到的错误。如果将max移动到main的本地范围,会发生什么情况?aArray的错误仍然出现吗


我能想到的另一件可能影响编译的事情是传递给gcc的开关。调用gcc时,C::B传递的命令是什么样子的?

您能发布整个代码段和包含行号的错误吗?从您发布的位来看,您在结构定义的末尾缺少一个;但它是这可能只是一个复制粘贴错误。这不是答案。如果你这样做,人们可能会认为问题已经得到了回答。最好是编辑你的问题。
char aArray[max]; //error: 'max' was not declared in this scope
int posz;