C/C++
文章平均质量分 63
liguss
这个作者很懒,什么都没留下…
展开
-
C语言小问题——enum枚举类型占用内存大小问题
今天写程序时候写了个结构体,里面是一列定义的枚举类型变量。因为是做单片机软件开发,平时对变量空间占用比较敏感,所以思考起这个问题,查了博客和一些文章,发现基本都是在用sizeof()在电脑上进行测试,结果都是4字节,但这明显不是我找的答案。而且有一些帖子讨论问题是“如何减小枚举类型大小”、“如何将枚举类型大小降到最低”,大家都遇到这个问题了,下面是我的总结。情况一:直接使用无值的枚举类型定义变量。 如果这样,那么编译器会直接将变量类型大小设为和整数类型大小相同,例如32位处理器的程序位4字节。...原创 2021-01-28 15:56:03 · 6500 阅读 · 0 评论 -
C编程小问题 —— “error: #31: expression must have integral type“
1、使用结构体定义了位域时,习惯性的将整个结构体进行了位与操作。 结构体不能直接进行位操作,具体什么原因网上查一下,我还不知道。但是今天定义了一个位域类型结构体,用来存储几个按键标志,本来想着方便进行操作,就直接进行了位与,想着同时对多个参数进行转换,结果编译器报错“表达式必须具有整型”。 所以还是老老实实一个一个位转换吧……typedef struct { uint8_t Bit0:1; uint8_t Flag0:1; // 按键处理标志 uint8_t Bit1...原创 2020-12-08 17:46:40 · 10607 阅读 · 1 评论 -
C编程小问题 —— “missing function-prototype“
这个问题是根本原因是编译的代码中存在未声明函数,即“缺少函数原型”错误。多文件编程中比较多,导致的原因也很多,下面总结几个用于大家排查自己报错代码。 1、“头文件卫士”宏定义的失误。 有时候为了方便,一个功能函数文件*.c、*.h直接复制几份加以修改,然而这样稍不留神就会导致头文件里的“#ifndef XXXX”忘记修改,导致两份头文件的选择编译宏相同,原本用来防止重复编译的头文件卫士现在直接导致第二份代码的头文件无法被正常预处理插入代码中。 宏名较长时由于看起来比较相...原创 2020-12-03 17:37:31 · 61025 阅读 · 4 评论 -
Notepad++的C语言文本配色,及语言格式设置选项含义
Notepad++是一款自由开源免费(GPL协议)的文本编辑器(摘自百度百科:Notepad++是Windows操作系统下的一套文本编辑器(软件版权许可证:GPL),有完整的中文化接口及支持多国语言编写的功能(UTF8技术))。 本文介绍自己配置其C语言文本配色方案,及介绍语言格式设置选项含义。当然它的配色和其他个性化配置可以使用外部配置文件导入来完成,即你可以下载别人的沛泽方案来使用。 下面是我的配色:(C语言测试文本) 个人配色想法是:注释类的颜色统一点,...原创 2020-11-25 17:33:35 · 2285 阅读 · 0 评论