【问题标题】:iso c90 forbids mixed declarations and codeiso c90 禁止混合声明和代码
【发布时间】:2015-03-03 06:00:45
【问题描述】:

这是我的编码,我在声明 int *intpointer 的行中遇到上述错误。请帮我解决这个问题。

#include <stdio.h>

int main()
{
int intarray[5] = {10,20,30,40,50};

int i;
for(i = 0; i < 5; i++)
    printf("intarray[%d] has value: %d - and address @ %x\n", i,     intarray[i], &intarray[i]);

int *intpointer = &intarray[4];
printf("address: %x - has value %d\n", intpointer, *intpointer); 

intpointer--;
printf("address: %x - has value %d\n", intpointer, *intpointer); 

return 0;
}

【问题讨论】:

    标签: c


    【解决方案1】:

    放置此声明

    int *intpointer = &intarray[4];
    

    intarray声明后的函数代码块的开头。

    由于错误消息报告,您将代码编译为要求声明位于其他语句之前的 C90 代码。

    【讨论】:

    • 非常感谢。我认为这个问题在 C99 中得到了解决,我们可以在代码之间的任何位置声明变量。
    • @user2720353 错误信息指出您将代码编译为 C90 代码。
    • 是的...我在 C90 上编译,这就是它显示错误的原因。当我尝试你给出的建议时,它奏效了,然后我明白了。感谢您的指导。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    相关资源
    最近更新 更多