本人初学者,想写一些库函数方便以后调用,在独立按键的时候我给文件设置名称为keys.c和keys.h(合计独立按键比较多就写成了KEYS),结果编译时不通过,无法打开keys.h文件,经过更改名称key.h和key.c之后顺利通过编译,我想知道为啥名称最后一个字母不能是s呢!
2条回答 默认 最新
关注【以下回答由 GPT 生成】
问题的原因是由于keil5编译器对文件命名的规定和C语言的关键字冲突导致的。在C语言中,有一些关键字是不能被用作文件名的,否则会导致编译器无法识别该文件。而以s结尾的文件名,恰好和C语言中一些重要的系统库函数的命名有冲突。所以,在keil5编译器中,不推荐以s结尾的文件名。
解决方案: 1. 避免使用关键字作为文件名称。在命名文件时,要避免使用与C语言关键字相同的名称,可以参考C语言的关键字列表,确保文件名不与之重复。
-
不要使用与系统库函数相同的文件名称。避免使用与C语言标准库函数名称相同的文件名,因为编译器可能会将该文件误认为是系统库函数,导致编译错误。
-
命名规范和良好的风格。遵循命名规范和良好的编码风格,使用有意义的文件名,减少文件名冲突的可能性。
示例代码:
// 在命名keys.h和keys.c文件时,避免使用与C语言关键字和系统库函数相同的名称 // 可以使用更具描述性的名称,例如key_handler.h和key_handler.c // 错误的示例 // keys.h // keys.c // 正确的示例 // key_handler.h // key_handler.c总结: 以上是解决该问题的具体方案,如果遵循上述建议,就能避免在keil5编译器中出现无法编译名为keys.h的文件的问题。如果您对以上解决方案有任何疑问,可以进一步咨询。
【相关推荐】
- 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7590926
- 这篇博客你也可以参考下:【嵌入式底层知识修炼】基于通用消抖算法,拓展通用非阻塞Key按键识别算法
- 除此之外, 这篇博客: HNU小学期计算机系统设计与创新基础训练——基于STC学习板的加密信息存储与游戏操作系统(第二部分实现方式+代码讲解)中的 Q5:因为要使用导航按键进行数值的变化,那么最好是使用Key3的P1.7口作为虚拟AD口,但是我还是需要Key3的按键功能(按键实在太少而功能太多),那么该如何解决? 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报-