编译问题
liguss
这个作者很懒,什么都没留下…
展开
-
cubeIDE移植工程问题——“Error:registers may not be the same -- `strexh r3,r2,[r3]‘”
STM32F的ARM内核支持文件cm3.c的问题,可将其中相同的两句代码“__ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );”,改为“__ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );”即可正常编译。...原创 2021-03-30 00:07:06 · 649 阅读 · 0 评论 -
C语言小问题——enum枚举类型占用内存大小问题
今天写程序时候写了个结构体,里面是一列定义的枚举类型变量。因为是做单片机软件开发,平时对变量空间占用比较敏感,所以思考起这个问题,查了博客和一些文章,发现基本都是在用sizeof()在电脑上进行测试,结果都是4字节,但这明显不是我找的答案。而且有一些帖子讨论问题是“如何减小枚举类型大小”、“如何将枚举类型大小降到最低”,大家都遇到这个问题了,下面是我的总结。情况一:直接使用无值的枚举类型定义变量。 如果这样,那么编译器会直接将变量类型大小设为和整数类型大小相同,例如32位处理器的程序位4字节。...原创 2021-01-28 15:56:03 · 7156 阅读 · 0 评论 -
C编程小问题 —— “missing function-prototype“
这个问题是根本原因是编译的代码中存在未声明函数,即“缺少函数原型”错误。多文件编程中比较多,导致的原因也很多,下面总结几个用于大家排查自己报错代码。 1、“头文件卫士”宏定义的失误。 有时候为了方便,一个功能函数文件*.c、*.h直接复制几份加以修改,然而这样稍不留神就会导致头文件里的“#ifndef XXXX”忘记修改,导致两份头文件的选择编译宏相同,原本用来防止重复编译的头文件卫士现在直接导致第二份代码的头文件无法被正常预处理插入代码中。 宏名较长时由于看起来比较相...原创 2020-12-03 17:37:31 · 65790 阅读 · 4 评论 -
Keil中C51编程注意要点(更新)
主要是日常的一些繁琐的编程问题,死活查不出来,个人新手,如果有问题或者不全面,请指正!原创 2020-02-09 12:47:13 · 1525 阅读 · 1 评论