前段时间我使用的是在Windows下运行的Dev C ++ IDE,并附带MinGW(GCC的Windows端口),现在我转移到MAC OS X Leopard,我使用Code :: Blocks IDE和GCC v4.2 (Apple修改版),附带XCode 3.2.2。我不知道我的问题是否取决于发行版(Dev cpp)或编译器版本,或者可能是它是GCC的Apple发行版,但我在声明结构化数据时强调了这种差异。
在旧的开发CPP中,在Windows上运行我只是在暗示这个
const int max = 1000;
struct data {
char thing[max];
int anotherthing;
}
然后我使用它来引用它这样的函数:
void some_function(data something)
效果很好。在使用Code :: Blocks IDE的编译器的Xcode版本上,我得到一些错误,它将无法编译。
new types may not be defined in a return type
错误:未在此范围内声明'max'
谢谢!
答案 0 :(得分:0)
我在右边的行中提出了错误内容的评论。
使用命名空间std; const int max = 1000;
typedef struct dato {
short pos;
char cont[max]; //error: 'max' was not declared in this scope
};
...然后是主要功能:
int main(){
char aArray[max]; //error: 'max' was not declared in this scope
int posz;
...继续使用好的代码
答案 1 :(得分:0)
从您发布的代码段中,我发现它没有任何问题。它应该编译没有你得到的错误。如果将max移动到main的本地范围会发生什么? aArray的错误是否仍然存在?
我能想到的唯一可能影响编译的是传递给gcc的开关。当调用gcc时,C :: B传递的命令是什么样的?