C++
主要记录C++开发过程中的学习笔记和心得
好好学图算
这个作者很懒,什么都没留下…
展开
-
DSP芯片上算法加速技巧总结
#1 将多层或者双层循环改为单层循环。 让循环只形成一个pipeline,充分利用dsp的流水线, #2 使用const关键字限定目标。 C6000编译器如果确定两条指令是不相关的,则安排它们并行执行。 关键字const可以指定一个变量或者一个变量的存储单元保持不变。 这有助于帮助编译器确定指令的不相关性。#3 使用内联指令_add2() 将16位整数改为32位,调用_add2()一次完成两组16位整数的加法,效率可提高一倍。...原创 2021-04-07 17:28:12 · 2451 阅读 · 0 评论 -
动态内存与智能指针总结
#1 静态内存和栈内存中的对象由编译器自动创建和销毁。#2 除了静态内存和栈内存,每个程序还有一块内存池,用于存储动态内存。#3 C++11标准库提供两种智能指针,shared_ptr和unique_ptr 。#4 shared_ptr允许多个指针指向同一个对象。unique_ptr则独占所指的对象。#5 智能指针跟vector类似,也是模板,用法跟普通指针类似,解引用返回它指向的对象。#6 通常用make_shared函数给shared_ptr分配内...原创 2021-04-07 11:30:25 · 96 阅读 · 0 评论 -
#ifdef __cplusplus extern “C“ { #endif”的定义
在linux c平台开发的时候,引用了一些Cpp或者C的代码库,发现一些头文件有如下代码条件编译。#ifdef __cplusplusextern "C" {#endif// 代码#ifdef __cplusplus}#endif作用:为了在C++代码中调用用C写成的库文件,就需要用extern"C"来告诉编译器:这是一个用C写成的库文件,请用C的方式来链接它们。原因:C++支持函数重载,而C是不支持函数重载的,两者语言的编译规则不一样。编译器对函数名的处理方法...原创 2021-02-25 14:49:16 · 241 阅读 · 0 评论 -
error C2665: 2 个重载中没有一个可以转换所有参数类型
编写如下代码运行,提示错误(error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型)。代码:1void CMouseMoveView::OnAppExit()2 {3 // TODO: 在此添加命令处理程序代码4 if(AfxMessageBox("是否真的要退出当前程序?",M原创 2016-07-27 15:34:10 · 9340 阅读 · 1 评论 -
位运算总结
位运算应用口诀 清零取反要用与,某位置一可用或若要取反和交换,轻 轻松松用异或移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 " 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的原创 2016-08-09 14:46:43 · 260 阅读 · 0 评论