STM32
直播中

南中南

8年用户 955经验值
擅长:光电显示
私信 关注
[问答]

为什么使用keil5编译器会出现报错的现象呢

为什么使用keil5编译器会出现报错的现象呢?有哪些原因呢?


回帖(1)

张倩

2021-12-17 09:16:33
编译器报错:error: #77-D: this declaration has no storage class or type specifier
百度翻译:此声明没有存储类或类型说明符
理解:没有这类存储类型(说明数据类型是一个编译器未知的,而你也没有定义的)
通俗来讲就是没有给变量或函数返回值一个正确的类型
举例:
1、变量中发生的错误

#include


int a;
a = 9;


int main(void)
{
        printf("a = %dn", a);
}


此时会在 a = 9 这个地方报错,这是因为对变量的赋值一般不能放到函数外,只有在定义全局变量的初始化才被允许!
因此编译器会将a = 9 看成全局变量的初始化,没有对应的数据类型,所以进行报错。
2、函数中发生的错误

xxx fun(int a)
{
        // 语句
}


在这个函数中,如果xxx是一个未知的数据类型,那么也会报错。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分