Keil出现error C100: unprintable character 0xCA skipped

文章讲述了在C++代码中遇到的编译错误,主要原因是Seg.h文件中包含了中文字符,由于未添加注释符,导致系统识别并错误处理。解决方案涉及正确处理非ASCII字符,如使用UTF-8编码或添加适当的注释。

..\Driver\Seg.h(7): error C100: unprintable character 0xCA skipped

..\Driver\Seg.h(7): error C100: unprintable character 0xC2 skipped

这个问题出现的主要原因为:出现了中文字符,例如“”和""是不一样的

此次本工程是没添加//注释符导致后面的中文注释内容被系统识别出来,如下:

        #include <Seg.h>数码管底层驱动专用文件

正确运行的结果

main4.c(12): error C100: unprintable character 0xEF skipped main4.c(12): error C100: unprintable character 0xBC skipped main4.c(12): error C100: unprintable character 0x8C skipped main4.c(12): error C100: unprintable character 0xEF skipped main4.c(12): error C100: unprintable character 0xBC skipped main4.c(12): error C100: unprintable character 0x8C skipped main4.c(12): error C100: unprintable character 0xEF skipped main4.c(12): error C100: unprintable character 0xBC skipped main4.c(12): error C100: unprintable character 0x8C skipped main4.c(12): error C100: unprintable character 0xEF skipped main4.c(12): error C100: unprintable character 0xBC skipped main4.c(12): error C100: unprintable character 0x8C skipped main4.c(12): error C100: unprintable character 0xEF skipped main4.c(12): error C100: unprintable character 0xBC skipped main4.c(12): error C100: unprintable character 0x8C skipped main4.c(12): error C100: unprintable character 0xEF skipped main4.c(12): error C100: unprintable character 0xBC skipped main4.c(12): error C100: unprintable character 0x8C skipped main4.c(12): error C100: unprintable character 0xEF skipped main4.c(12): error C100: unprintable character 0xBC skipped main4.c(12): error C100: unprintable character 0x8C skipped main4.c(52): error C100: unprintable character 0xEF skipped main4.c(52): error C100: unprintable character 0xBC skipped main4.c(52): error C100: unprintable character 0x9B skipped main4.c(53): error C141: syntax error near 'EA', expected ';' main4.c(53): error C100: unprintable character 0xEF skipped main4.c(53): error C100: unprintable character 0xBC skipped main4.c(53): error C100: unprintable character 0x9B skipped main4.c(54): error C141: syntax error near '}', expected ';' main4.c(68): error C141: syntax error near '}', expected ';' compiling key.c... compiling seg.c... ..\driver\seg.c(4): error C100: unprintable character 0xEF skipped ..\driver\seg.c(4): error C100: unprintable character 0xBC skipped ..\driver\seg.c(4): erro
03-14
### 关于C语言编译错误 `error C100: unprintable character 0xEF skipped` 的解决方案 当遇到编译器报错提示 `unprintable character 0xEF skipped` 时,这通常意味着源代码文件中存在非法字符或编码问题。具体来说,字符 `0xEF` 是一种不可见的控制字符,在ASCII标准之外,可能由于编辑器设置不当或者复制粘贴操作引入。 以下是针对该问题的具体分析和解决方法: #### 1. **检查并修正特殊字符** 非法字符可能是由某些特定输入引起的,比如使用了中文标点符号或其他非标准字符替代正常的英文语法符号。例如,如果在函数声明或定义中误用了中文分号(;),则可能导致此类错误。应将其替换为对应的英文半角字符[^2]。 示例修复前后的对比: ```c // 错误示例 (包含中文冒号) void setup:(); // 正确写法 void setup(); ``` #### 2. **调整文本编辑器/IDE 编码配置** 文件保存时使用的编码方式也可能引发此问题。推荐始终采用 UTF-8 或 ASCII 编码来存储 .c 和 .h 文件,并关闭 BOM(Byte Order Mark),因为BOM标记有时会被误解成无效数据流的一部分从而触发警告消息[^3]。 如果正在使用 Visual Studio Code, 可通过以下步骤更改默认编码选项: - 打开命令面板 (`Ctrl+Shift+P`) - 输入 "Change File Encoding" - 转换当前文档至无BOM版本UTF-8 #### 3. **清理项目构建缓存重新编译** 偶尔旧版目标二进制残留物会干扰新改动效果显现出来,因此建议彻底清除之前产生的中间产物再尝试全量重建工程[^4]: 对于 Keil MDK 用户而言, - 进入菜单栏 Project -> Rebuild All Target Files 即可完成整个项目的重置过程; 对于 GCC 工具链使用者,则执行如下脚本删除 obj 子目录及其内容后再正常流程继续下去: ```bash rm -rf ./obj/* make clean && make all ``` 以上措施综合运用基本能够有效规避因隐匿型异常字节序列所造成的编译失败现象发生。 ```c // 示例代码片段展示如何正确书写函数原型以及调用关系 #include <stdio.h> float read_temperature(void); int main(){ printf("Temperature is %.2f degrees Celsius\n",read_temperature()); } float read_temperature(){return 25.7;} ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值