illegal statement termination:非法语句终止
报错位置:
void main(void)
{
init_devices(); //初始化
uint j; 出错位置
……
}
实际原因:.c中变量必须定义在执行语句前面。
C98中规定,在任何执行语句之前,在块的开头声明所有局部变量。
但在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。
这就解释了在.c下报错,而在.cpp下不报错。因为编译器会根据文件的后缀来选择不同的编译器(.c文件和.cpp文件采用不同的编译器)。
http://blog.csdn.net/saintyyu/article/details/48289747