随笔分类 - C++
1
摘要:前面记录一篇,关于有符号与无符号的混合运算,会有一些意想不到的结果 那么,我们是否可以“负负得正”呢? 什么情况下是不行的? 首先,不要被绕晕。 这是前提: 所有的无符号与有符号运算,都是先转成无符号运算的。结果返回 无符号, 那么,理论结果如果本身就是正数的,那实际就应该是正常的 如果结果不是正数
阅读全文
摘要:最近在给项目组做静态检测工作,也做了一部分修复问题 由于项目代码也基本完成,功能也验证差不多了,做一做静态检测还是很有必要的。 而我通过这样的活动,也对一些细节了解更加彻底 一般来说,当我们程序出现,无符号变量与有符号变量一起运算的时候,静态检测工具会报一条警告,例如: 这条规则来自 MISRA20
阅读全文
摘要:上次整理视频一些知识,这些知识以采集,编码/解码相关的,也引出了H264概念 文章: https://www.cnblogs.com/winafa/p/12768392.html H264的设计,主要还是网络传输 但网络传输,在我们印象中,基础也就是UDP/TCP之类的,那么视频(数据量又那么大),
阅读全文
摘要:像memcpy是经常用到,但memcpy实际上并不是像我们知道那样一个字节一个字节的拷贝 memcpy是库函数,并不是C语言,有些场合下要自己写代码实现 1. 最简单实现方式 一个个字节的实现 void Mem_Cpy(void *pTag,const void *pSrc,int nLen) {
阅读全文
摘要:C++Test是Parasoft出品,优质产品,一般用于代码的静态检查,单元白盒测试等 先mark一下: 打开C++ Test之后,选择菜单“Parasoft” - 测试配置 - 选择“内建” 然后再选择你要查询标准,点右键,选择“查看规则文档”,此时就可以看到该条的规则具体内容,也有例子说明,比较
阅读全文
摘要:结构体是对齐的,而且windows跟linux也不一样,平常不注意的话,会导致莫名其妙的问题 最近在找一个离奇的问题,最终虽然找到是强制转换导致问题,但实际上还是结构体对齐问题跟协议设计问题 背景: 某端口收到一帧数据,原始数据放在uint8_t *pBuf 里面 一般来说,为了解析方便点,要根据协
阅读全文
摘要:1.1 CppCheck简介 CppCheck是一个静态代码检查工具,支持c/ c++代码;作为编译器的一种补充检查, CppCheck对产品的源代码执行严格的逻辑检查。 执行的检查包括: 自动变量检查 数组的边界检查 class类检查 过期的函数,废弃函数调用检查 异常内存使用,释放检查 内存泄漏
阅读全文
摘要:在linux下编程经常会碰到一些配置上的问题 提示怪怪的,看提示的确也找不到具体问题所在,比如说出现如下错误: relocation R_ARM_THM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared
阅读全文
摘要:原文地址: https://cjting.me/2020/12/10/tiny-x64-helloworld/#executable 正如文中所说,一个简单Hello World竟然编译之后15K,在一些环境下根本接受不了。 本文就是最好从简单原理描述,一个可执行文件是怎么来,哪些地方是可以优化的,
阅读全文
摘要:大部分函数的参数都是用于输入 但,也存在用于输出 比如说: bool AddFun(int nItem, int &nRet); 像第二个参数 nRet是可以用于输出,当然也可以做输入 由于C语言限制,C语言里要这样写: bool AddFun(int nItem, int *nRet); 写法不一
阅读全文
摘要:1. 有时候需要添加编译选项,从而达到编译开关的问题 例如,在代码里经常碰到 #ifdef CL_NOSQL CallFun() ..... #endif CL_NOSQL就是自己定义编译开关,有点类似 WIN32 之类,只是那种一般windows IDE都会默认存在的 这样方便不改变代码的前提下编
阅读全文
摘要:最近接收一个项目,用到视频的内容,简单点说,就将一端的视频采集下来,然后通过网络传输到另外一端并显示出来 采集设备不是IP摄像头,是USB摄像头,因此要涉及采集原始数据的知识 由于网络传输效率问题,因此必须采用一种合理的压缩方式,最容易想到是H264,实际上传MJPG也是可以的(效率低一些) H26
阅读全文
摘要:无意之中,发现用文字转换语音转出来的语音,有点点瑕疵 大家都知道,文字转语音是比较方便的,往往大家都是用朗读女的工具进行转换 但不知是我的朗读女版本问题还是本身就存在bug,转换出来的语音在结尾处有一点 刺耳的声音(尖锐的声音,感觉很突兀) 在Windows PC端用常规播放器播放是听不到的,但在l
阅读全文
摘要:setjmp 和 longjmp 是一对跳转函数,也是神一样的函数,这种函数比goto都强大,但功能跟goto差不多 既然,代码规范里要求不能使用goto,所以setjmp 和 longjmp 这个也基本不用。 当然,前提特殊情况下是可以的。例如特殊处理,实现自己的异常处理代码 关于 setjmp
阅读全文
摘要:NXP出了IMX6系列芯片(现在应该是9系列最新了),性能相当于我们嵌入式行业,已经非常优秀(可以做很多事情) 同时,IMX6DL IMX6Q 自带vpu硬编解码,用来处理下视频也是非常不错的,对于我们来说的确非常合适 众所周知,mxc_vpu_test.out 是官方提供的测试程序,用于测试各种功
阅读全文
摘要:对于串口并不陌生,使用了N遍,总以为理解很深刻,实际上还有很多细节未知。 近期在处理新的板子发现串口收发很不正常,经常少一些数据、莫名其妙数据被串改了,导致校验通不过,现象很诡异 例如存在以下几种现象,可能就是这个问题: 程序在接收数据时,0x13,0x11 总是收不到。 串口发送方发 0x0D,接
阅读全文
摘要:最近在处理U盘操作出现系统卡死的问题 现象描述: 1.U盘在转储文件(将设备上文件拷贝到U盘上),有概率出现拷贝卡死,从而导致系统死机(通过插拔U盘,偶尔能够恢复正常) 2.文件并不大,大小也没有太大关心 3.部分U盘容易出来,其他不容易出来 4. 实验模拟,已经排除其他因素。当出现卡死的情况,是因
阅读全文
摘要:relocation R_X86_64_PC32 against symbol `_ZTVN9xxxxxE' can not be used when making a shared object; Linux 下 编译动态库的时候,碰到如下错误提示,很奇怪。经过排查,确定不是代码本身的问题 网上查
阅读全文
摘要:很多人在转储bmp文件的时候,会出现各种各样的问题,特别是抓屏的时候,经常保存下来的图片 怪怪的,偏差很大!比如下面: 有时候,明明感觉自己是对的,但往往结果很让人抓狂。 这种情况一般是对bmp文件格式理解不对,或者没有透彻导致,当然至少是显示出来,所以大部分是对的,只是某些地方出错! 网上也有很多
阅读全文
摘要:不定参数在一些特殊场合下是很有用的,例如在字符串的格式化合成,像printf()函数、日志输出等场合都很容易想到这样的结构。 其实,这种方法在C语言里就已经存在了,也不是什么新奇特的东西,一般要实现这样的功能,需要以下几个函数/类型组成: va_list 、va_start、va_avg、va_en
阅读全文
1