#include \"2407C.h\"
initial()
{
*IMR=0x0000;
*IFR=0x0FFFF;
*SCSR1=0x0285;
*WDCR=0x006F;
*WSGR=0x0000;
}
void main(void)
{
initial();
int i=0x01;
port000C=i;
}
build后提示如下:
\"test.c\", line 59: [F001] syntax error at or near symbol \'int\'
\"test.c\", line 61: [F108] \'i\' undefined
是变量的定义有问题吗?
请高手指点!
把 int i 的声明放到 main 开头就行了。
void main(void)
{
int i=0x01;
initial();
port000C=i;
}
谢谢
如你所说,问题解决了,是不是所有的变量都要放到main的开头来声明?
在C语言中,函数内的自动变量是不是必须在开头定义?我在手册中一直没找到这句话,所以不敢下结论。但是所读过的程序中,人人都是在开头定义自动变量,好像没有例外。
还有一个问题请教
看了一下C语言的书,也只是强调对于变量要先定义,后使用,没有强调一定要在函数的开始定义,为了安全还是要放在开始吧
另外我编译后出现如下warning:
warning: creating output section vectors without SECTIONS specification
不知道是怎么回事,中断向量表是asm文件,段名为vectors,在。cmd中如下:
PAGE 0: VECS: origin =00000h, length =00040h
.vectors > VECS PAGE 0
有什么问题吗?
ok了
我把。 vectors > VECS PAGE 0 中的。去掉后就可以了,
找到了:“变量的声明(包括初始化)除了可以紧跟在函数开始的花括号之后,还可以紧跟在任何其他标志复合语句开始的左花括号之后。”,所以写成:
void main(void)
{
initial();
{
i nt i=0x01;
port000C=i;
}
}
也是允许的。
厉害
对于有的问题看来还是要追根到底搞清楚啊,对整个编程都有帮助,要不然中间突然想用一个临时变量,还要到开头去定义,太麻烦了