在for循环中将指向结构的指针声明为迭代器



我试图在for循环中使用一个指向结构的指针作为迭代器,但它给了我错误"错误#20:标识符";z";是未定义的";就好像我必须先声明它,而不是在for循环中使用它,我不知道如何做到这一点。


typedef struct 
{
int id;
double low;
char *str;
} Zone;
void print_table(Zone zones[], int len, double hr_max)
{
for (Zone *z = zones; z < zones + len; z++)

您的编译器来自石器时代,因此无法处理for循环中的声明。您需要启用C99支持或更新版本。显然;CCS";问题是使用了一个5.0.0以前的gcc版本,当时gcc默认设置为-std=gnu90,所以我想您的编译器已经过时了10多年。

一般来说,我强烈建议不要使用硅供应商提供的功能失调的Eclipse派生。这些工具是可怕的。

最新更新