
C/C++
记录使用C/C++日常遇到的问题
Liwx1014
做好现在的事
展开
-
C/C++编译开发过程中容易混淆的概念
1 声明和定义的区别 :声明出现很多次,但定义必须只能出现一次。 可以把声明理解成一个指针,就是通过声明一个变量就可以获取到该变量内存位置,从而进行操作如果想引用别的源文件里的全局变量和函数,在源文件最开始加上extern varibaleextern function()如果源文件里的一些函数和全局变量不想被人访问,可以在前面加上static。在全局变量前面加上static: 就是防止其他文件可见,所以其他源文件可以使用相同的变量名字在局部变量前面加上static: 当调用到该..原创 2022-03-05 10:13:10 · 266 阅读 · 0 评论 -
CenterNet 模型后处理 (C++和python代码)
该网络有三个部分组成 backbone(提取高级语义特征),上采样(恢复分辨率),head (三个卷积最终输出三个向量 )heatmap[B,C,H,W],wh [B,2,H,W],reg[B,2,h,w]heatmap 存放的是目标中心点位置,整张图那个位置最接近1 ,代表那个位置,是目标的中心点。wh 总共两个通道,存放的是目标在该点的目标框的长和宽,所以计算左上和右下点 x-w/2reg 总共两个通道,存放的是目标中心点的x,y偏移量,加上这个数值即可w........原创 2022-02-24 16:39:32 · 2641 阅读 · 1 评论 -
ubuntu 18.04 安装 opencv3.4 C++ 版本
先从官网上下载:https://opencv.org/releases/安装依赖:sudo apt-get install build-essentialsudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libswscale-dev ffmpeg libavcodec-dev libavformat-dev libavdevice-dev#以下可选sudo原创 2020-10-12 14:40:25 · 1130 阅读 · 0 评论 -
C++中容易混淆的概念
转载自知乎:阿里面试必会20道C++面试题! - 棋子的文章 - 知乎 https://zhuanlan.zhihu.com/p/85566239作者:棋子链接:https://zhuanlan.zhihu.com/p/85566239来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1、如何初始化一个指针数组。解析:首先明确一个概念,就是...原创 2019-11-01 14:00:36 · 276 阅读 · 0 评论 -
关于不同语言编写代码运行时数据交互的问题
本文的系统环境为Linux进程是系统分配资源的最小单位。简单来讲,你运行一个可执行程序,就是一个进程。这个可执行程序可以是不同语言编写的,比如说c/c++ 和python 这两个。一个c/c++的进程如何和python运行的进程进行数据的交互呢,方式有三种:管道(fifo),共享内存,消息队列,这几种通信方式是不分语言的,只要是进程都可以用着三种方式,这里我推荐使用 共享内存和管道,方便...原创 2019-09-11 16:27:15 · 1173 阅读 · 0 评论 -
每周总结-----不同编程语言互相调用的本质
造成不同编程语言不能之间互相调用的原因是:编译器对每个函数的解释不同,会翻译成不同的符号表假如有一个函数 int a(int b);c编译器会直接翻译成_a()c++会翻译成_int a(int),这也是c++能支持重载的原因extern C 是 c++ 的特性,这一点非常重要,所以,C++调用c接口 和 c调用c++接口不一样。它是一种链接约定,不影响对函数的检查参数的转换仍要遵循c++...原创 2019-03-11 11:27:55 · 2752 阅读 · 0 评论 -
linux下使用git创建远程仓库
公司有台服务器闲置,正好可以做为我们的git服务器来方便管理代码在server端配置如下: apt-get install git openssh-serverapt-get install openssh-clientuseradd git //使用git用户管理mkdir xxx.gitgit init --bare xxx.git //初始化仓库chown -...原创 2018-06-28 11:08:48 · 3436 阅读 · 0 评论 -
Linux内核の解决并发与竞态的方法
并发是指多个执行单元同时,并行的被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量,静态变量)的访问很容易导致竞态。在linux 内核中,主要的竞态发生在以下几种情况:1 对称多处理器(SMP)的多个CPU2 单CPU内进程与抢占它的进程3 中断(硬中断,软终端,TASKlet,底半部)与进程之间上述并发的情况除了SMP是真正的并行以外,其他都是宏观并行,微观串行。...原创 2018-06-14 17:15:52 · 1038 阅读 · 0 评论 -
linux开发の如何静态的将驱动模块编译进内核
在解决这个问题之前,我们先搞明白linux究竟是怎样管理源码中上万个文件的。我们看Linux源码的目录,十分科学,基本上看到目录就可以猜到里面放的什么,那怎么把文件连接起来,靠的就是Kconfig,它可以告知Makefile那些编译那些不编译。第一步:在driver目录下新建一个my_dr/hello目录,主要存放自己编写的内核驱动代码。当执行make menuconfig 时,能够...原创 2018-06-13 14:50:35 · 1650 阅读 · 0 评论 -
嵌入式linux开发の字符设备驱动程序的开发流程
本篇文章以编写电位器驱动程序为例,详细介绍并总结下设备驱动的开发流程硬件:am3354(TI)系统内核:linux3.2我们在有了板子和选定好使用的内核后,在开始编写驱动之前要查看原理图,即外设使用的那几个引脚。我们还需要在板子文件中(arch/arm/根据厂商芯片名.c)把引脚设置好。因为可能你使用的这几个引脚被用于别的功能了。在确定好使用那几个引脚后,我们要确定是使用何种框架编...原创 2018-06-07 17:19:42 · 1010 阅读 · 0 评论