![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
bug狂人
去看代码吧。
展开
-
c++ &转void*
c++指针与引用需要非常熟练才能得心应手。原创 2023-02-16 19:29:32 · 101 阅读 · 0 评论 -
2020-10-29
windows 内存 使用率原创 2022-09-15 09:36:32 · 67 阅读 · 0 评论 -
error LNK2001: 无法解析的外部符号 “public: __thiscall std::
error LNK2001: 无法解析的外部符号 "public: __thiscall std::原创 2022-07-31 10:58:54 · 448 阅读 · 0 评论 -
cjson和jsoncpp评测
建议使用cjson,c语言开发,无论是嵌入式还是应用开发运行速度都很快,比jsoncpp要快10几倍不止。jsoncpp采用c++的string处理。本人用了一上午的时间写了测试demo进行运行时间计算,cjson完胜。本人自己手写了一套json解析代码,完胜cjson。喜欢极致的朋友可以借鉴。Cjson本人修改为c++,cjson本人追求极致手写jjson,jjson...原创 2022-05-27 14:07:39 · 987 阅读 · 0 评论 -
c++ STL(数据结构)
STL: 内存结构 进出 排序 查找string 连续 不适合 不适合 遍历vector 连续数组 尾进出 插入顺序排序 遍历或定位deque 链表数组 头尾进出 插入顺序排序 遍历或定位...原创 2019-12-21 19:30:00 · 111 阅读 · 0 评论 -
MFC HTTP get post 极简
MFC HTTP原创 2022-05-20 14:13:11 · 916 阅读 · 0 评论 -
error C2707: “_exception_info”: 内部函数的错误上下文
改成下面任意一行即可LPEXCEPTION_POINTERS p_exinfo = nullptr;__except (p_exinfo = exception_info(), EXCEPTION_EXECUTE_HANDLER) __except (p_exinfo = GetExceptionInformation(), EXCEPTION_EXECUTE_HANDLER)原创 2022-05-14 16:56:27 · 378 阅读 · 0 评论 -
c++写日志 线程安全
#include <iostream>#include <thread>#include "Abnormality.h"int _stdcall video_work(void*arg){ FILE *fp = (FILE *)arg; int index = 100; while (index--) { bugs(fp," i=%d\n", index); } return 0;}int main(){ FILE *fp = NULL;.原创 2022-05-14 16:16:52 · 427 阅读 · 0 评论 -
c++写日志(极简)
//根目录#define f_PATH_TYPE "log_info.log", "a+"//系统宏#define FFL __FUNCTION__, __LINE__#define FFLDT FFL, __DATE__, __TIME__#define FFL_X __FILE__, FFLDT/** 本地文件写debug */#define bug(s, ...) \ FILE *fp = NULL;\ fopen_s(&fp, f_PATH_TYPE.原创 2022-04-26 08:53:13 · 1131 阅读 · 0 评论 -
char*与wchar_t*互转
#include <string.h> #include <stdio.h>#include <iostream>wchar_t w_cn = '中';char c_cn[2] = { '0' };char *C2W(wchar_t w_cn, char c_cn[2]){ //following code convert wchar to char c_cn[0] = w_cn >> 8; c_cn[1] = w_cn; c_cn.原创 2022-04-21 09:27:50 · 1041 阅读 · 0 评论 -
vs同时编译lib和dll
/*c配置lib和dll*/#ifdef DLLEXPORT#define _LIB_DLL_ __declspec(dllexport)#else#define _LIB_DLL_ __declspec(dllimport)#endif/*c++配置lib和dll*/#ifdef DLLEXPORT#define _LIB_DLL_ declspec(dllexport)#else#define _LIB_DLL_ declspec(dllimport)#endif...原创 2022-03-15 10:23:45 · 482 阅读 · 0 评论 -
c++字符串大小写转换
//c++字符串大小写转换int toggleCase(unsigned char str[],int str_length){ for (size_t i = 0; i < str_length; i++) {#if 1 if (str[i] >= 'A'&& str[i] <= 'Z') { str[i] += 32; }#else if (str[i] >= 'a'&& str[i] <= 'z') .原创 2022-02-16 15:29:39 · 1683 阅读 · 0 评论 -
表达式必须是可修改的左值
前边加上*&(void*&)即可原创 2022-01-18 20:09:21 · 859 阅读 · 0 评论 -
【无标题】c++ 结构体内不补0
#pragme pack(push,1)struct xxx{//数据类型,不会补0}#pragma pack(pop)原创 2022-01-10 19:22:59 · 276 阅读 · 0 评论 -
“初始化”: 截断常量值
char a = 0xff;//±128;//改为unsigned char a = 0xff;//0~255将有符号改为无符号即可,其实就是值和类型没有匹配,编译器给的提示。原创 2021-12-13 11:36:48 · 574 阅读 · 0 评论 -
c++禁用启用设备 usb
测试代码是所有usb串口的程序,需要自己判断。下载原创 2021-11-06 11:51:37 · 1168 阅读 · 0 评论 -
malloc calloc进阶
/*malloc的宏*/template<typename T>inline T* mem(T* &t, int len){ t = (T*)malloc(len*sizeof(T)); return t;}#define MEM(T,k,l) mem<T>(k,l)/*calloc的宏*/template<typename T>inline T*mec(T* &t, int len){ t = (T*)calloc(len, si.原创 2021-10-16 14:38:22 · 68 阅读 · 0 评论 -
free进阶
#define FREE(obj) obj ? free(obj), obj = nullptr : NULL原创 2021-10-16 14:25:50 · 76 阅读 · 0 评论 -
c++函数内重新声明变量进行赋值使用
如果面试时问这个问题一般很少有人能回答上来;因为只有那些经历了代码长河洗礼的码农才回懂!涉及到指针操作,如果不懂原理,那你绝对是个大坑(尤其团队开发)。不过不知道原理不要紧妮子要记住这么写就对了。...原创 2021-10-09 09:30:16 · 636 阅读 · 0 评论 -
toojpeg库 添加测试代码
.h官网地址// //////////////////////////////////////////////////////////// toojpeg.h// written by Stephan Brumme, 2018-2019// see https://create.stephan-brumme.com/toojpeg///// This is a compact baseline JPEG/JFIF writer, written in C++ (but looks lik.原创 2021-09-25 14:16:44 · 531 阅读 · 0 评论 -
Basler相机QT代码vs
MainWindow.h/********************************************** 说明:Basler相机主界面。* 修改日期:20210625* 作者:mazs* 邮箱:mzsapi@163.com**********************************************/#ifndef _MAIN_WINDOW_H_#define _MAIN_WINDOW_H_#include <QtWidgets/QW原创 2021-06-25 11:00:21 · 621 阅读 · 0 评论 -
c++ 链表 详解 for应用
struct Linked { Linked *next; char deviceId[64];};int LinkedJson(cJSON* json, Linked *&dr){ cJSON *list = cJSON_GetObjectItem(json, "list"); cJSON *node = list->child; for (; node != NULL; node = node->next) { cJSON *item = cJSON_Ge.原创 2021-05-07 14:10:19 · 1144 阅读 · 4 评论 -
c++遍历创建目录
char pathTemp[256] = { 0 };int path_inspect(char path[], unsigned long long size){ char *strDir = path; if (size>256) return 0; int error = 0; unsigned long long len = 0; unsigned long long add = 0; char * ptr = NULL; for (int i = 0; NULL !.原创 2021-03-29 09:25:40 · 73 阅读 · 0 评论 -
window nginx 配置
一、Nginx下载二、Nginx配置三、nginx启动//可编写批处理脚本,nginx常用命令验证配置是否正确: nginx -t查看Nginx的版本号:nginx -V启动Nginx:start nginx快速停止或关闭Nginx:nginx -s stop正常停止或关闭Nginx:nginx -s quit配置文件修改重装载命令:nginx -s reload查看启动成功的2种方式:浏览器内输入配置的地址进行访问。四、nginx错误日志原创 2021-03-24 11:07:57 · 388 阅读 · 0 评论 -
c++ “初始化”: 截断常量值
添加unsigned关键字即可。原创 2021-01-30 13:44:59 · 1256 阅读 · 0 评论 -
c++ realloc 自动扩充内存或减少内存
typedef struct TLinked{ Analysis*agreement = NULL; int index = 0;}Tstruct;size_t memcpymove(void **&list, void *value){ if (value == NULL) return 0; /* Nothing to do!*/ size_t index = 0; /* Allocate room for the new string */ if (list .原创 2020-11-17 15:29:08 · 853 阅读 · 0 评论 -
windows ABS防抱死逻辑
__int64 compareFileTime(FILETIME time1, FILETIME time2){ __int64 a = (unsigned __int64)time1.dwHighDateTime << 32 | time1.dwLowDateTime; __int64 b = (unsigned __int64)time2.dwHighDateTime << 32 | time2.dwLowDateTime; return (b - a);}/..原创 2020-10-30 19:36:10 · 229 阅读 · 0 评论 -
c++ http gzip压缩解压缩
/* 压缩 data 原数据 ndata 原数据长度 zdata 压缩后数据 nzdata 压缩后长度 */int httpgzcompress(Bytef *data, uLong ndata, Bytef *zdata, uLong *nzdata){ z_stream c_stream; int err = 0; if (data && ndata > 0) { c_stream.zalloc = NULL; c_stream.zfree = NULL; .原创 2020-10-27 19:35:23 · 3725 阅读 · 3 评论 -
c++ 创建目录
创建目录,遍历创建原创 2020-10-22 15:33:35 · 592 阅读 · 0 评论 -
c++ 中位数
double k;double median(double arr[], int len = 10){ cocktail_sort(arr, len); int index = len / 2; if (len % 2 == 0) { k = (arr[index - 1] + arr[index]); return k / 2.00; } else { k = arr[index]; return k; } return 0.0;}cockta.原创 2020-09-19 09:05:35 · 471 阅读 · 0 评论 -
c++ 绝对差值
double abs(double a, double b){ return a>b ? a - b : b - a;}打赏码原创 2020-09-19 08:59:13 · 1003 阅读 · 2 评论 -
c++ 内存泄漏排查升级板
template<typename T> class dll MCNew { public: MCNew::MCNew() : isFree(false) { } MCNew::~MCNew() { if (!isFree) printf("%s no free\n", fun); } T* MCNew::caloc(int size, char* function) { fun = function; s_str = (.原创 2020-07-16 21:19:23 · 119 阅读 · 0 评论 -
c++ 内存泄漏排查简单完美
CallocBuffer cb;char* str=cb.callocChar(2048,__FUNCTION__);cb.freeChar();//这里注释掉会打印内存没有释放/*------------------------------.h-------------------------------*/class CallocBuffer {public: CallocBuffer(); virtual ~CallocBuffer(); char* CallocBuffer:.原创 2020-07-16 20:31:13 · 658 阅读 · 0 评论 -
c++ char*初始化
char* str=“\0”比char* str=NULL赋值方式更能有效减少bug原创 2020-03-12 14:11:35 · 9337 阅读 · 1 评论 -
c++ 冒泡排序、鸡尾酒
//#include <math.h>int cocktail_sort(int &length){ int i = 0; int count = 0; int index = 0; length = sizeof(arr) / sizeof(*arr); int len = ceil(length / 2.0); for (; i <len; i++)...原创 2020-01-05 18:39:00 · 162 阅读 · 0 评论 -
memset memcpy
memset是寄存器对内存进行了一次赋值操作,而memcpy是两次。有兴趣的可以科谱汇编的寄存器及指令和工作原理(计算机工作原理)最基础的也是最有效的。对比...原创 2020-01-01 12:11:41 · 1221 阅读 · 0 评论 -
c++ malloc calloc new [] 及差异
两者皆可开辟内存,但是malloc开辟空间并没有查擦写内存,但是calloc对内存进行了擦写初始化0的过程。malloc基址寄存器向前位移时没有取取值寄存器的值擦写内存操作,但是calloc基址寄存器向前移位时再取值寄存器内取值对内存进行了赋值操作;不得不说寄存器的操作实在是快。有兴趣可以看strcatstrlenmemset和memcpy。memcpy strcpy再...原创 2020-01-01 11:49:57 · 765 阅读 · 0 评论 -
c++ 数字字符串互转
c++ stdlib.h内有原生的函数:数字字符串互转//字符串转数字int i = atoi("66");printf("%d",i);double f =atof("2013.14");printf("%lf",f);//数字转字符串char str[64];itoa(666,str,10);printf(str);//666gcvt(3.1415926,10,str...原创 2019-12-19 18:07:56 · 468 阅读 · 0 评论 -
cout printf 区别
cout多线程执行写入会随机排列字符串。printf多线程执行写入会顺序排列字符串。举例cout:threthrad1steadart...1stthraead1start...rt...printf:thread1start...thread2start...thread3start...都是输出了字符串,但是字符串的排列顺序不同。...原创 2019-12-05 11:48:41 · 251 阅读 · 0 评论 -
c++性能测试
mark_count是我的逻辑快3微秒,事实证明双循环要耗时。标准库的函数也不一定是最优的。原创 2019-11-03 17:53:26 · 698 阅读 · 2 评论