这个错误是因为register i;register是一个修饰符,当然还需要一个int或者char什么的放到中间。这就好比gcc下的:warning: type defaults to 'int' in declaration of 'i'
可以用下边的代码验证一下:
#include <stdio.h>
int main()
{
register i = 0;
printf("%d\n", i);
return 0;
}
如果用编译时加上-Wall(显示所有警告),就会出现上边的警告。意思都是
警告你没有定义明确的类型,编译器会默认成int。很明显两个警告内容不是完全一样,这也可以看出这个内容是各家编译器来确定的。
(我是我在用RVDS2.2编译三星的启动代码时在2440addr.h中遇到的)