当前位置:   article > 正文

Keil中两个小bug:expected an identifier,declared implicitly

Keil中两个小bug:expected an identifier,declared implicitly

问题1:

char 1_RSSI[10] = {0}; 
  • 1

这样定义报错了: error: #40: expected an identifier

解决1:

这是由于不符合C语言语法导致的报错。
C语言中,变量名字不能以数字开头,否则编译器就认为是非法的。
正确的可以是:

char RSSI1[10] = {0}; 
  • 1

C语言变量命名规则
(1)变量名的**开头必须是字母或下划线,不能是数字。**而以下划线开头的变量名是系统专用的。
(2)变量名中的字母是区分大小写的
(3)变量名绝对不可以是C语言关键字
(4)变量名中不能有空格

问题2:

如下这段代码,编译时报错:x declared implicitly

int main() 
{
    x = 10; // 变量x未被声明
    printf("x = %d\n", x);
    return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

解决2:

这是因为x在使用之前未声明或定义,编译器在遇到x时无法找到其声明或定义。
变量与函数都是类似的,在使用之前要进行声明或定义。
正确的如下:

int main() 
{
    int x; // 声明变量x
    x = 10; // 给x赋值
    printf("x = %d\n", x);
    return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在Keil中,函数或变量经常要在头文件中进行声明(容易忽视,导致报错),这样别的.c文件才可以使用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/168063
推荐阅读
相关标签
  

闽ICP备14008679号