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

问题1:

c 复制代码
char 1_RSSI[10] = {0}; 

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

解决1:

这是由于不符合C语言语法导致的报错。

C语言中,变量名字不能以数字开头,否则编译器就认为是非法的。

正确的可以是:

c 复制代码
char RSSI1[10] = {0}; 

C语言变量命名规则:

(1)变量名的**开头必须是字母或下划线,不能是数字。**而以下划线开头的变量名是系统专用的。

(2)变量名中的字母是区分大小写的

(3)变量名绝对不可以是C语言关键字

(4)变量名中不能有空格

问题2:

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

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

解决2:

这是因为x在使用之前未声明或定义,编译器在遇到x时无法找到其声明或定义。

变量与函数都是类似的,在使用之前要进行声明或定义。

正确的如下:

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

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

相关推荐
深念Y14 小时前
Opencode Event 表写入优化方案
数据库·人工智能·ai·node.js·bug·优化·opencode
姚青&1 天前
Bug基本概念
bug
AI多Agent协作实战派2 天前
AI多Agent协作系统实战(三十九):AI修对了Bug,却越了权——自动化团队的第一条铁律
人工智能·自动化·bug
深念Y3 天前
AMD 芯片组驱动触发高频 SSD 写入的问题及解决方案
windows·bug·ssd·日志·芯片·驱动·amd
加油码4 天前
探秘 volatile关键字:编译器的过度优化
linux·bug·信号处理
鹿屿二向箔4 天前
keil5.39版本使用AC6编译器不能位域操作的BUG使用STM32U385系列MCU
stm32·单片机·bug
angryshan4 天前
goLang配置断点流程
go·bug
吨吨ai6 天前
# ChatGPT Plus / Pro + Codex Debug 实战:如何让 AI 从日志、Trace、异常堆栈自动定位线上 Bug
人工智能·chatgpt·bug
灰暗世界%6 天前
飞牛bug修复
bug
凌云拓界8 天前
NodeVerdict | 性能门禁:把追踪数据变成 CI 规则
ci/cd·信息可视化·开源·node.js·bug·数据可视化·安全架构