c/c++

草莓沙冰不要冰

预备知识 URL编解码 常用于url链接和application/x-www-form-urlencoded格式的请求体中对参数进行编码由于url的参数的样子是key1=value1&key2=value2,如果key或者value中包含= &等字符,就会导致解析时混乱了,因...

发布 5 条评论

异常弹窗 且有时弹窗后点击中止,程序并不会停止运行 问题定位 打断点debug缩小范围,然后发现是一句调用spdlog库生成log文件的代码引发: 百度得到了一些解析,这个问题是因为对象在析构时不正确的释放内存导致,...

发布 12 条评论

前言 尝试过使用ubuntu的UI环境+vscode,但最后还是感觉vs顺手。因此开始摸索使用vs连接虚拟机进行开发,调试。而win11有自带的ubuntu虚拟机,由于它的网络,文件路径映射感觉都很省心,因此最终决定使用它,但配置的过程中遇到很...

发布 6 条评论

包管理工具 当我们需要使用别人开发的库时,可能会需要去下载其源码然后编译再引入我们的项目,这样做的话一来引用的库多了比较麻烦,而且需要自己管理这些包,二来一旦迁移到其他机子上就得复制过去或是再下载编译一次,...

发布 2,253 条评论

rand() 在以往的c/c++中生成随机数是使用rand()函数,但它也有一些使用的注意事项 头文件 #include <stdlib.h> 使用 随机数范围 rand()的返回值范围在 [0, RAND_MAX]RAND_MAX是一个宏定义,在stdlib.h中...

发布 3 条评论

加入比较短时间的Sleep()一般对时效性影响不大,但能极大地降低CPU占用。 比如,这里我们用coolfun::UI_suspend()等待按键函数的源码来举例: #include<conio.h> #include<iostream> #include<windows.h> us...

发布 4 条评论

猜测原因: 给数组分配内存大小是在编译过程,编译只在各个文件自己里面,所以编译器不知道外部文件定义的常量值是多少,在连接过程才会知道,所以编译不通过报错。 解决方法: 那当然是使用强大的宏定义来代替它了。

发布 1 条评论

循环内如果有switch的话,switch内的break无法用于结束循环,而是会终止switch的执行。 解决方法: 在switch内需要结束循环时搞一个控制值,用于控制循环如 for(;i;); 中的i,一开始置1等非0值令循环可以执行,在需要结束循环...

发布 1 条评论

无符号整形(unsigned) 和 有符号整形(int) 的比较会默认强制转换为 无符号类型(unsigned) 先来看示例代码,这里以 int a = -1 和 unsigned int b = 77 来做大小比较: #include <iostream> using namespace std; ...

发布 2,255 条评论

首先要明确的是,数组名和指针还是有区别的数组名本身就是一个常量地址,它是数组的首地址,并且不可修改,而数组名本身不占空间。指针是一块空间,它存放了一个地址。在32位系统中,由于地址是4个字节大小,因此一个指针占用的空间...

发布 10 条评论