
C/C++
文章平均质量分 95
C/C++相关学习记录
blingbling_110
前端程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++中malloc/free与new/delete的区别与联系
一、基本概念 malloc/free: 1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。 void free(void *FirstByte): 该函数是将之前用malloc分配的空间还给程序或者是操作系统,也就是释放了这块内存,让它重新得...转载 2021-04-13 15:35:56 · 738 阅读 · 0 评论 -
GUI自定义标题栏及背景——Qt程序编程初体验
GUI自定义标题栏及背景——Qt程序编程初体验项目仓库项目简述GUI效果项目架构主要函数Windows中Qt程序的打包发布项目仓库https://github.com/blingbling-110/HelloQt项目简述GUI效果使用工具:Qt Creator 4.3.1 Based on Qt 5.9.0 (MSVC 2015, 32 bit)项目架构HelloQt.pro是项...原创 2020-03-09 16:23:10 · 616 阅读 · 0 评论 -
Qt Creator中使程序自动以管理员权限运行
Qt Creator中使程序自动以管理员权限运行问题背景解决方案msvc编译器MinGW编译器问题背景由于项目涉及到注册表操作,产物须避免客户右键->以管理员身份运行,双击即自动以管理员权限运行。解决方案msvc编译器在项目的.pro文件中添加:QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator'uiAccess='false'"MinGW编译器先创建一个 .manifest 文件,如:app.manifest,文件内容转载 2020-06-28 15:35:24 · 2430 阅读 · 3 评论 -
Qt5 QFileDialog中文英文交界处乱码问题
QString fileName = QFileDialog::getOpenFileName( this, "导入文件", "", "支持的文件(*.hex *.s19 *.bin)");临时解决方案:QString fileName = QFileDialog::getOpenFileName( this,原创 2020-12-29 09:58:07 · 869 阅读 · 0 评论 -
CRC(循环冗余校验)查表算法的代码实现
CRC(循环冗余校验)查表算法的代码实现前言准备工作查表算法的由来查表算法的基本原理模二减法(异或运算)的性质对直接计算法进行分析基本原理的推广查表算法的代码实现测试用例正式编码代码的测试仓库地址前言CRC基本原理、数学描述和直接计算法的编程实现请参考笔者之前的劣文:https://blog.youkuaiyun.com/weixin_44256803/article/details/105805628本文假设读者已有以上CRC基础各种CRC类型汇总:https://reveng.sourceforge.io原创 2020-12-27 19:05:52 · 8612 阅读 · 5 评论 -
Section与Segment间的区别
Section与Segment间的区别汇编语法关键字程序的加载链接过程示例总结汇编语法关键字在汇编源码中,通常用语法关键字section或segment来表示一段区域,它们是编译器提供的伪指令,作用是相同的,都是在程序中"逻辑地"规划一段区域,此区域便是节。注意,此时所说的section或segment都是汇编语法中的关键字,它们在语法中都表示"节",不是段,只是不同编译器的关键字不同而已,关键字segment在语法中也被认为与section意义相同。也就是说,汇编语法关键字中的section或se转载 2020-09-02 12:50:06 · 11768 阅读 · 0 评论 -
Matlab 错误使用 mex 未找到支持的编译器或 SDK 问题解决记录
记录一下Matlab 与C混合编程时碰到的问题问题背景Matlab 版本:2017b编译器版本:Microsoft Visual C++ 2017 v15.0在进行mex -setup时报错:>> mex -setup错误使用 mex 未找到支持的编译器或 SDK……解决方案使用mex -setup -v命令查看详细信息:>> mex -setup -v……... 正在查找编译器 'Microsoft Visual C++ 2017 (C)'......原创 2020-07-22 11:41:54 · 2069 阅读 · 0 评论 -
【科普向】谁都能看懂的CRC(循环冗余校验)原理
CRC原理简介CRC基本原理模二运算二进制系数多项式CRC算法示例CRC算法的数学描述常用CRC版本CRC算法的编程实现简介循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。在数据传输过程中,无论传...原创 2020-04-28 17:17:16 · 113937 阅读 · 23 评论 -
C语言宏定义函数的使用(定义单行和多行)
要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定...转载 2020-01-02 16:43:50 · 1144 阅读 · 0 评论 -
WinForm关闭窗体后进程不退出的可能情况
关于WinForm窗体的关闭方法不再赘述,可以参考该博文然而在开发过程中,发现调用System.Environment.Exit(0);方法仍然可能出现关闭窗体后进程不退出的情况。造成这种问题的原因很可能是调用该方法时某些前台线程已经阻塞,因此,可以通过以下方式关闭://强制结束进程并退出System.Diagnostics.Process.GetCurrentProcess().Kill(...原创 2019-11-22 11:24:08 · 1734 阅读 · 0 评论 -
Dll注入与卸载入门学习总结
Dll注入与卸载入门学习总结注入Dll卸载Dll本文所有代码均在该链接:注入Dll示例VS项目动态链接库(Dll)入门知识:微软教程注入Dll注入Dll的大体思路是:在宿主进程中创建一个远程线程,该线程执行kernel32.dll模块中的LoadLibraryA函数来将其他动态链接库加载到宿主进程的地址空间中。几个重要的API:CreateRemoteThread(创建远程线程)G...原创 2019-10-17 20:12:37 · 695 阅读 · 1 评论 -
C语言中不同长度的数据进行位运算
C语言中,如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。例如:一个long型数据与一个int型数据进行位运算,右端对齐后,左边不足的位按照下面三种情况补足:(1)如果整型数据为正数,左边补16个0。(2)如果整型数据为负数,左边补16个1。(3)如果整形数据为无符号数,左边补16个0。...转载 2019-03-01 10:48:57 · 4119 阅读 · 3 评论 -
C语言中.c和.h文件解析
C语言中.c和.h文件解析编译器的工作过程示例为何要分.c和.h文件编译器的工作过程一般说来编译器会做以下几个过程:1.预处理阶段2.词法与语法分析阶段3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)4.链接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二...转载 2019-02-14 11:40:16 · 513 阅读 · 0 评论 -
C/C++中栈(stack)和堆(heap)的区别
C/C++中栈(stack)和堆(heap)的区别简单理解程序的内存分配示例栈和堆的理论知识申请方式申请后系统的响应申请大小的限制申请效率的比较栈和堆中的存储内容存取效率的比较小结简单理解栈(stack):是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。堆(heap):是由malloc之类函数分配的空间所在地。地址是由低向高增长的。程序的内存分配由C/C++编译...转载 2019-01-23 16:27:09 · 2266 阅读 · 0 评论 -
Python中ASCII转十六进制、C中BCD转十进制、十六进制学习记录
ASCII、BCD转十六进制ASCII转十六进制转换规则BCD转十进制、十六进制BCD码的优点BCD码分类各种BCD码的特点转换规则ASCII转十六进制转换规则ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统,ASCII码表主要用于显示现代英语和其他西欧语言。转换规则如下表...转载 2019-01-11 11:09:01 · 6571 阅读 · 0 评论 -
浮点数转二进制规则学习记录
浮点数转二进制浮点数的存储格式转换规则浮点数的存储格式目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和小数来表示,底数定为2——即把一个浮点数表示为小数乘以2的指数次方再添上符号。具体如下:float类型:单精度浮点值,1位符号,8位指数,23位小数。double类型:双精度浮点值,1位符号,11位指数,...转载 2018-12-28 11:38:12 · 2429 阅读 · 1 评论 -
C数组学习记录
C语言中的数组概念声明二维数组概念数组数据结构可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。声明二维数组type arrayName [ x ][ y ];其中,type 可以是任意有效的 C 数据类型,arrayName 是一个有...转载 2018-12-26 17:10:22 · 165 阅读 · 0 评论