我尝试使用编译它-gcc
和它的工作如预期,但与添加时-pedantic
,它不会编译。 我仍然在编程相当初学者,这是我第一次遇到这个问题,所以这对我来说是相当有问题。
下面是导致该错误的代码:
char *exercise[5]={"swimming", "running", "brisk walking", "weight lifting", "zumba"};
我会很感激,如果你能解释的解决办法是什么,而不只是固定的代码,因为我想学习。
我尝试使用编译它-gcc
和它的工作如预期,但与添加时-pedantic
,它不会编译。 我仍然在编程相当初学者,这是我第一次遇到这个问题,所以这对我来说是相当有问题。
下面是导致该错误的代码:
char *exercise[5]={"swimming", "running", "brisk walking", "weight lifting", "zumba"};
我会很感激,如果你能解释的解决办法是什么,而不只是固定的代码,因为我想学习。
这有没有关系阵列具体。 标准化的C语言(ISO C90)的原始版本禁止混合声明和代码。
在C90每个局部块包围{}
具有相当严格的结构:其与声明开始(如果有的话),然后将其随后语句(代码)。
这就是你必须遵循的格式。 移动你的数组声明的块的顶部。 它应该是微不足道的,因为没有你的初始化依赖于任何运行时间计算。 这里的所有都是它的。
{
/* Declarations go here */
char *exercise[5]={"swimming", "running", "brisk walking", "weight lifting", "zumba"};
/* Statements (i.e. code) goes here */
}
当然,这里的潜问题是:你真的必须使用C90? 是你明确要求写您的C90编译器的代码? 也许你应该你的编译器只需切换到C99模式,而忘记了这个特定的C90-限制?
在C语言(C99和更高版本)新版本,你可以自由组合语句和声明。 GCC可以通过指定被切换到C99模式-std=c99
在命令行。