
C++
文章平均质量分 60
梦开始的地方└(★o★)┐
不积硅步,无以至千里
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Cursor搭配cmake实现C++程序的编译、运行和调试
Cursor搭配cmake实现C++程序的编译、运行和调试原创 2024-07-31 11:55:31 · 13397 阅读 · 9 评论 -
设计模式-单例模式
转自。原创 2024-03-07 15:26:49 · 432 阅读 · 0 评论 -
浮点数在内存中的存储方式
不用担心,IEEE754已经规定好了,存入内存时E的真实值必须加上一个中间数,对于8位的E,这个中间数是127。例如当指数为-1时,在8位的情况下,只需要存入-1+127,也就是126即可。计算机内部保存M时,默认这个数的第一位总是1,如1.011,因此第一位的1可被省去,只需要保存小数点后面的位,在读取的时候加上第一位的1即可。(1)E全为0(指数非常小):浮点数的指数E以1-127为真实值,有效数字M不再加上第一位的1,变成0.xxxxxx。使得计算出来的值为+-0,以及接近于0的很小的数字。原创 2023-12-20 14:35:29 · 147 阅读 · 0 评论 -
VS结构体重定义;不同的基类型
但是有个疑问,按照A.h中的写法,后面在定义XXX结构体变量时,应该需要带上struct关键字,但其实没有带,程序运行也没有问题。前几天还可以跑起来的代码,今天突然运行不起来了,报"XXX"重定义;(XXX是代码里定义的一个结构体)然后在B.h中#include<A.h>删除B.h中的定义后问题解决。原创 2023-11-29 17:24:23 · 995 阅读 · 0 评论 -
sizeof和strlen的区别
4.如果以字符数组arr作为函数形参,sizeof(arr)将arr当做字符指针处理,strlen(arr)依然将arr当做字符数组处理。3.strlen测量字符串的实际长度,以字符为单位,以\0结束,sizeof测量字符数组分配的大小,以字节为单位。2.sizeof的参数可以是类型也可以是变量,strlen的参数必须是char*类型的变量。1.strlen是库函数,在程序运行时计算长度,sizeof是运算符,在编译时计算长度。原创 2023-10-30 16:59:50 · 102 阅读 · 0 评论 -
踩坑-用_stscanf_s将字符串转成浮点数
这个时候,不幸就发生了。无论我怎么改输入框的值,param一直不变,打断点过去,str变了,但是_stscanf_s没有把param的值改掉,期间我去WC摸了半小时的鱼依然是想不明白。这个时候就正常了,为啥呢,我就又仔细看了下我的param变量,发现它是个double类型的,我给它改成float,之前的写法(不用中间变量)也可以了。我在做MFC开发的时候,想获取界面上一个输入框(Edit Control)的文本,并将它转成浮点数赋值给某个类的成员变量。今天踩了个坑困惑了自己一个下午,特此记录一下。原创 2023-09-15 18:15:20 · 207 阅读 · 0 评论 -
“错误 LNK2001 无法解析的外部符号” -使用类的静态成员变量
今天在码代码的时候,遇到了“错误 LNK2001 无法解析的外部符号 ”,鉴于最近刚了解了C/C++代码的编译,这次没有之前遇到这个问题那么慌乱了,笃定这就是链接的时候没有找到对应的变量。还好这里的提示信息还是有点用的,大概可以猜出来就是在使用类AA的静态变量static_a的时候出了问题。其实如果对类的静态成员变量的声明及初始化十分熟悉的话,这个时候应该就可以看出问题来了,但是我当时就是不太熟悉,加上都是嵌在项目里的代码,要看出来得费点时间。还好我去网上仔细搜罗了一下,搜到了这篇博客。原创 2023-09-14 11:45:32 · 697 阅读 · 0 评论 -
MFC-CListCtrl使用记录
【代码】MFC-CListCtrl使用记录。原创 2023-09-12 09:56:03 · 115 阅读 · 0 评论 -
QString的转换及常用方法
//QSring 转 (int float double) //转int QString age_str = "18"; quint16 age = age_str.toInt(); qDebug() << 12 + age_str << 12 + age; //转float QString pi_str = "3.14"; float pi = pi_str.toFloat(); //qDebug() &...原创 2023-09-07 14:58:19 · 750 阅读 · 0 评论 -
C\C++程序运行流程(附编译指令学习)
以下内容参考。原创 2023-09-12 21:15:58 · 274 阅读 · 0 评论 -
Windows底层窗口实现
本文是学习以下视频课程的记录。原创 2023-09-01 17:06:41 · 139 阅读 · 0 评论 -
MFC窗口创建及消息映射机制
然后创建头文件mfc.h(名称自定义)本文是学习以下视频教程的记录。原创 2023-09-01 17:16:57 · 320 阅读 · 0 评论 -
利用向导创建MFC程序
以下内容引自。原创 2023-09-04 17:13:59 · 942 阅读 · 0 评论 -
MFC多文档学习
以下内容摘自MFC多文档开发记录_mfc多文档创建子窗口_柠檬有点酸的博客-优快云博客在VS中,点击文件-》新建-》项目,进入创建向导,这里使用的是VS2022 选择MFC应用,如果最近没有使用过可以在搜索框中搜索: 给项目起名字,我这里是在已有解决方案中创建,也可以选择创建新的解决方案:点击创建后进入MFC项目创建向导,进行如下配置后直接点击完成:等一会之后自动创建项目如下:运行这个项目,弹出应用程序界面如下:窗口界面和文件的对应关系如下:在资源视图中,可以按键盘delete键或鼠标右键删除菜单栏的内容原创 2023-09-05 16:55:46 · 661 阅读 · 0 评论 -
windows字符集(附char*、string、CString转换)
以下内容摘自英文:一个字符对应一个字节,多字节中文:一个字符对应多个字节,宽字节Unicode,例如,utf-8 3个,GBK 2个VS查看字符集:项目属性-》高级-》字符集多字节转宽字节:字符常量前面加L,例如L"aaa"MFC中TEXT()函数和TCHAR()根据当前选择的字符集做自适应编码的转换。原创 2023-09-04 11:01:30 · 199 阅读 · 0 评论 -
C\C++字符串操作&memcpy函数的底层实现
dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串,包括额外的空字符。如果在字符串 str 中找到字符 c,则函数返回指向该字符的指针,如果未找到该字符则返回 NULL。把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。src -- 指向要追加的字符串,该字符串不会覆盖目标字符串。原创 2023-06-10 13:39:41 · 1195 阅读 · 2 评论 -
指针的含义、大小及用法
含义:指向另外一种数据类型的复合类型。大小:64位系统中,指针占8个字节。原创 2023-06-10 13:40:34 · 95 阅读 · 0 评论 -
C字符串操作strcat/strcat_s
根据个人使用,strcat和strcat_s的不同点是对于溢出的情况,引发的错误不一样,strcat溢出时,出错的地方在释放内存的时候,因为内存溢出导致释放出错;strcat_s会判断有溢出的情况就在调用处报错不执行字符串追加操作了。原创 2023-06-10 13:39:35 · 1325 阅读 · 0 评论 -
野指针和悬空指针
指针指向一块内存空间,当这块内存被释放后,这个指针仍然指向这块内存,即为悬空指针。未初始化的、未确定指向的指针为野指针。原创 2023-06-10 13:41:47 · 84 阅读 · 0 评论 -
C++内存管理
全局区(.bss段):存放全局变量、静态变量,全局区中有一块常量区(.data段),用于存放字符串常量、const修饰的全局变量。(由编译器自动分配,程序运行完自动释放)堆区:new或malloc申请的内存空间,(由程序员控制分配和释放,如果程序运行完还没有释放,操作系统会自动回收)栈区:存放函数的局部变量、函数参数。(由编译器自动分配,函数运行完自动释放)代码区(.text段):存放编译后的二进制代码文件,只读&共享。C++内存分区:代码区、全局区、栈区、堆区。原创 2023-05-30 23:31:25 · 122 阅读 · 0 评论 -
深拷贝和浅拷贝
这里的b=a会造成未定义行为,因为类Sallow中的copy构造函数是编译器生成的,所以b = a执行的是一个浅拷贝的过程(c++默认的拷贝构造函数是浅拷贝)以上代码,a和b实际指向同一块内存空间,对象析构后,b先将内存释放了一次,之后a又将这块被释放过的内存又释放一遍,会导致程序崩溃。对于一个有资源的类,该类的对象进行复制时,资源会重新分配就是深拷贝,如果只是简单的值拷贝就是浅拷贝。深拷贝后,新对象和旧对象占用不同的内存空间,既拷贝了栈空间的内容,也拷贝了堆空间的内容。原创 2023-05-30 23:27:40 · 97 阅读 · 0 评论 -
字节对齐(内存对齐)
指定对齐值:#pragma pack(value)指定的对齐值value。结构体类型自身对齐值:基本数据类型成员变量中自身对齐值最大的那个。含义:编译器将代码中的数据存储在若干字节的整数倍的地址指向的内存中。有效对齐值:min{自身对齐值,指定对齐值}自然对齐:变量存储的首地址正好是其数据类型大小的整数倍。基本数据类型自身对齐值: 自身数据类型所占字节数。合理使用字节对齐可以节省结构体的占用空间。原创 2023-05-30 23:32:30 · 158 阅读 · 0 评论 -
C++文件操作(查找、删除、写CSV、读CSV)
【代码】C++文件操作(查找、删除、写CSV)原创 2023-05-30 23:34:34 · 2082 阅读 · 0 评论