经验教训
文章平均质量分 72
一些经验教训,思想火花
小刚学長
满屏源代码,一把辐射泪,都云编程痴,谁解其中味!
展开
-
编译opencv4.7.0 + opencv_contrib 记录
最近一个项目需要涉及到图像拼接算法,网上了解一番,也大致有思路:1. 利用surf算法查找特征点2. 过滤掉一些,获取good点3. 然后进行配准(图像扭曲),对接4. 形成最终拼接图片这些工作,最简单也是最快捷的方式就是opencv于是就开始研究opencv,windows版本可以直接在官网上下载,也可以在国内一些镜像网站上下载,这里需要注意,如果直接msi版本的话,是不支持surf算法。拼接的时候,需要surf,因此需要自己手动编译一个库出来。原创 2023-05-14 10:59:00 · 1058 阅读 · 2 评论 -
嵌入式Linux下开发中文输入法
近期由于项目需求:设备端需要中文输入而手头又没有现成可用的中文输入法,因此就想办法看看能否捣鼓一个出来。当然,开始是没有任何信心的,也深知输入法别看他很小的一个东西,但内部涉及内容还是非常多的,很多知识平常也怎么涉及,知识储备有限。 总之,这是个挑战任务,公司其他同事资源基本上也帮不上忙。 面对未知时间,还是得首先静下心来梳理下、分析下,这样才好各个突破。原创 2023-04-01 14:42:36 · 820 阅读 · 2 评论 -
一些好用的命名单词
/这个这个,虽然没有太多歧义,也不太可能冲突,但但这名字脑壳疼。的确,编码N年,到头来发现起始给变量(类)起个名字的确很难,仿佛比写个算法都难,往往酝酿了很久,结果还是差一点意思。总是觉得哪里不爽,要么太简单,要么太长,要么太普通。当然不应该千变一律,可以组合,但要琢磨琢磨,就好比写个诗一样,每个字都是有特定,换个近义词,总是不够意思。//num 虽然是number缩写,但太普通了,也缺少点意思,有点歧义。int n = 0;一般来说最佳名词,由一、两个单词组成,超过3个就显得臃肿了。原创 2023-03-25 14:48:14 · 549 阅读 · 0 评论 -
vivado 2022与2018之间差异
最近接触vivado,目前最新的版本为2022.1的版本,但网上的很多例子都是基于2018的版本的,因此在操作的时候,会比较麻烦。2018:相当于一个工程里面的一部分,因此,很多关联都开始帮你建立好,platform也默认帮你建立好。2022:vitis 官网是号称是独立的,因此,在更多意义上,这个是跟vivado是同一级别的。正因为独立,第一次使用vivado的硬件环境,需要先建立platform,否则比较尴尬。-----主要是两个一级菜单位置也不一样,第一次使用的时候,会有点懵逼。原创 2022-09-27 20:41:17 · 12972 阅读 · 2 评论 -
Set与二分法效率
stl中有set用于匹配是否存在,内部利用rbtree机制,是一种高效算法但在c语言环境下,stl是不能直接使用,因此需要用其他算法来代替,二分法也是一种快速排序方法,代码逻辑也比较简单。由于项目中,会碰到协议的筛选,例如跟进协议ID筛选,然后需要继续处理;此时由于前端输入是广播数据,往往大部分数据都是"不需要处理"的,如果不进行优化,此处效率的确低下.本来没有这篇作业的,由于测试结果并不是set效率都高于二分法的测试条件限制: 先看数据截图:二分法数据测试被测数组长度为 102被测数组长度为原创 2022-07-05 20:08:02 · 311 阅读 · 0 评论 -
C++代码规范(必须要遵循以及举例)
版权、文件声明规范1、版权和版本的声明【规范1-1-1】C/C++在头文件(.h)需进行版权、版本、作者等声明。版权和版本的声明位于头文件和源文件的开头(参见示例),主要内容有:版权信息 文件名称,摘要 当前版本号,作者,日期/******************************************************************************** Copyright (C), 2010-2019, GOSUN CL** @fil...原创 2021-04-14 11:19:52 · 3110 阅读 · 0 评论 -
静态分析常见问题
静态分析也是codereview重要环节,越是成熟的企业,越是对这些细节关注或投入巨大精力(其实都是伤害过才知道)C++这个双刃剑,需要更小心翼翼才可以不被伤到静态分析工具,可以使用C++ Test也可以使用轻量的CppCheck,个人觉得还是根据实际来进行,比如,真的很重视代码质量,建议用C++ Test,毕竟比较专业,能检查的东西也比较多如果仅仅自己使用,比如说重视下自己的代码,可以用Cppcheck,其实cppcheck很不错了,还可以支持自己开发前面写过关于CppCh..原创 2021-04-08 14:48:41 · 1140 阅读 · 0 评论 -
delete[] 与delete 用错了会怎么样?
C++的人,肯定知道 delete 要与 new 配对使用,delete[] 要与 new [] 配对使用。平时也小心着使用,一般问题也不大。但,如果稍微复杂点,有时候就会搞不清楚,究竟要delete 还是delete []难免会用错。比如说:CXXXDataType *m_pMyTest[2];if (m_pMyTest[0] == NULL) {//空 m_pMyTest[0] = new CXXXDataType(sDataLen)...原创 2021-04-07 14:54:10 · 210 阅读 · 0 评论 -
如何成为一名成功的程序员?
以下这篇文章应该是从哪里摘抄过来的,但时间过去比较久,已经忘记。至于,为什么今天又贴出来呢?我觉得写的不错,也有类似感受。前言编程是一个仅靠兴趣仍不足以抵达成功彼岸的领域。你必须充满激情,并且持之以恒地不断汲取更多有关编程的知识。只是对编程感兴趣还不足以功成名就——众所周知,我们工作起来像疯子。编程是一个没有极限的职业,所以要成为一个成功的程序员,你必须超越现有已存在的极限。在程序员职业生涯的开始阶段,他们将面临许多挑战,面对困境,他们之中有一些人将会放弃,而只有少数人会坚持到底,并.原创 2021-04-07 09:45:05 · 113 阅读 · 2 评论 -
Class ‘xxxx‘ has a constructor with 1 argument that is not explicit. cppcheck常见错误以及为什么
静态检查是比较好的一种自动检查代码工具,可以发现一些隐藏问题,当然更多是让你的代码更加规范,更加在可控范围内。以下是我整理的错误,也是自己对C++进一步的思考构造函数显式调用问题提示:Class 'CLBTimeSpan' has a constructor with 1 argument that is not explicit. Such constructors should in general be explicit for type safety reasons. Using t原创 2021-04-06 16:04:54 · 2391 阅读 · 0 评论 -
RGB颜色对照表,有用mark
RGB颜色对照表 #FFFFFF #FFFFF0 #FFFFE0 #FFFF00 #FFFAFA #FFFAF0 #FFFACD #FFF8DC #FFF68F #FFF5EE ...转载 2021-03-31 14:05:16 · 575 阅读 · 0 评论 -
Doxygen详细配置使用说明
写在前面:Doxygen是自动生成帮助文档的软件,非常方便。但,前提你的代码注释必须规范(这里的规范不是说符合你们公司内部规范,是符合标准规范)另外,源码必须全部UTF8或GBK,不能混用(否则中文会出现乱码,当然注释全英文随意)千万要注意以上两点,否则可能会出现乱码/ 失败之类的什么是Doxygen?Doxygen 是一个程序的文件产生工具,可将程序中的特定注释转换成为说明文件。说白了就是通过代码里注释直接生成说明文档,这样可以大大提高我们程序员生成说明文档的效率,当然..原创 2021-03-30 09:16:28 · 3577 阅读 · 0 评论 -
结构体对齐引发的教训
结构体是对齐的,而且windows跟linux也不一样,平常不注意的话,会导致莫名其妙的问题最近在找一个离奇的问题,最终虽然找到是强制转换导致问题,但实际上还是结构体对齐问题跟协议设计问题背景:某端口收到一帧数据,原始数据放在uint8_t *pBuf 里面一般来说,为了解析方便点,要根据协议设计一个结构体,假设这个结构体名称为ST_UNIR_BD然后,用memcpy,将*pBuf...原创 2021-02-09 11:05:00 · 684 阅读 · 0 评论 -
SQL语句整理1
//CASE 的用法,以及as SELECT CASE RegType WHEN 1 THEN '月卡' WHEN 0 THEN '周卡' WHEN 2 THEN '季度卡' WHEN 3 THEN '年卡' ELSE '未知卡类型...原创 2017-08-24 08:50:00 · 42 阅读 · 0 评论 -
关于IMX6Dl 芯片使用硬编解码的问题记录
NXP出了IMX6系列芯片(现在应该是9系列最新了),性能相当于我们嵌入式行业,已经非常优秀(可以做很多事情)同时,IMX6DL IMX6Q 自带vpu硬编解码,用来处理下视频也是非常不错的,对于我们来说的确非常合适众所周知,mxc_vpu_test.out 是官方提供的测试程序,用于测试各种功能,源码也提供,但是系统里面源码是跟其他测试程序整合在一起的,往往我们想要在此基础上改改弄弄,然...原创 2019-11-30 14:51:00 · 297 阅读 · 0 评论 -
程序员的职业规划
本人大学毕业之后,一直从事软件行业相关工作,目前已经16年左右了。写一下,自己对程序员这个职业一些升级看法与理解首先,我们在每个阶段,都要明确自己优势在哪里?劣势在哪里?下个阶段应该朝哪些方面突破。这个很重要,很多年轻小伙子经常对自己的未来,很迷茫,特别是在项目进度又没那么赶的时候,又不想无所事事。在你迷茫的时候:一定要分析下,自己的优势在哪里?劣势是什么?下个阶段朝哪些方面突破。这三个问题都能够清楚回答出来,我想你就不是一个迷茫的人。那么作为“程序员”的我们应该如...原创 2021-03-13 16:08:38 · 190 阅读 · 0 评论