一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

随笔分类 -  C/C++

上一页 1 2 3 4 5 6 7 8 9 10 ··· 14 下一页
C++ 代码重构的常用方法
摘要:代码重构的常用方法 (C++实现) 重构是在软件开发中改善已有代码的一种方法,通过代码重构可以改进软件的设计、使得软件更容易理解、有利于Bug的发现以及提高后续开发效率。Martin Fowler在《重构:改善既有代码的设计》一书中对“重构”提供了两种形式的定义: 重构(名词):对软件内部结构的一种 阅读全文
posted @ 2023-07-07 11:17 一杯清酒邀明月 阅读(366) 评论(0) 推荐(0) 编辑
C++ 计时器:chrono库介绍
摘要:C++11有了chrono库,可以在不同系统中很容易的实现定时功能。 要使用chrono库,需要#include,其所有实现均在std::chrono namespace下。注意标准库里面的每个命名空间代表了一个独立的概念。 chrono是一个模版库,使用简单,功能强大,只需要理解三个概念:dura 阅读全文
posted @ 2023-06-20 11:56 一杯清酒邀明月 阅读(1253) 评论(0) 推荐(0) 编辑
C++ 计时方法 std::chrono
摘要:计时的作用:测试某一段代码的运行时间,时间越短,则性能相对越高。 C++11 标准的”最佳计时方法“的代码: 1 #include <chrono> 2 using namespace std; 3 using namespace chrono; 4 5 auto start = system_cl 阅读全文
posted @ 2023-06-20 11:52 一杯清酒邀明月 阅读(389) 评论(0) 推荐(0) 编辑
C++ std::chrono的时钟Clock
摘要:std::chrono是C++11引入的日期时间处理库,其中包含3种时钟:system_clock,steady_clock,high_resolution_clock。近来需要使用高精度时间,很自然想到使用high_resolution_clock,然而使用后发现并非预期的得到自1970/1/1零 阅读全文
posted @ 2023-06-20 11:41 一杯清酒邀明月 阅读(603) 评论(0) 推荐(0) 编辑
C++ OpenMP、TBB库的简单使用
摘要:1.OpenMP的简单使用 OpenMP可以用来并行计算for循环,提高程序运行速度。 首先要打开OpenMP支持:“配置属性”——“C/C++”——“语言”——“1.OpenMP支持”后选择“是”。 1 omp_get_num_procs() //获取系统中处理器的个数 2 omp_set_num 阅读全文
posted @ 2023-06-14 14:25 一杯清酒邀明月 阅读(1247) 评论(0) 推荐(0) 编辑
C++ Windows.h max宏与std::max冲突问题解决
摘要:C语言引入的宏支持了一定程度的元编程,但它仅仅是简单的字符串替换,这种“六亲不认”的操作很容易导致一些编译错误。 这篇文章介绍了一种场景:项目同时引入了老的C头文件,里面用宏定义了一些宏函数;还引入了C++的头文件,里面用其他方式定义了一些同名函数。具体到问题本身,这个老的头文件是Windows.h 阅读全文
posted @ 2023-06-13 11:53 一杯清酒邀明月 阅读(845) 评论(0) 推荐(1) 编辑
C++“不能实例化抽象类”错误
摘要:对于“不能实例化抽象类”编译错误,主要基本是子类继承于抽象类,然后有某个抽象函数没有实现导致:例如,抽象类A 1 class A{ 2 public: 3 A(); 4 virtual test() const = 0; 5 } 子类B继承A 1 class B : public A{ 2 publ 阅读全文
posted @ 2023-03-29 14:05 一杯清酒邀明月 阅读(1097) 评论(0) 推荐(0) 编辑
C++ wchar_t char wstring string 转换
摘要:1.wchart_t转wstring 1 wchar_t tmpRuleStr[10] = {0}; 2 wstring m_tmpRuleStr = wstring(tmpRuleStr); 2.wstring转wchar_t 1 wstring str = "123"; 2 wchar_t* t 阅读全文
posted @ 2022-12-01 10:40 一杯清酒邀明月 阅读(726) 评论(0) 推荐(0) 编辑
C/C++ 三元运算符
摘要:用在表达式比较简单的情况下,通常会使用三元运算符,c++的三元运算符比python的可读性要高一些,但是整体的语法结构很类型,因为结构都不是很复杂。 语法 条件判断语句 ? 判断结果为True时返回这里的值 : 反之返回这里的值 例子 判断用户输入的数字是奇数还是偶数 1 #include <ios 阅读全文
posted @ 2022-11-15 16:32 一杯清酒邀明月 阅读(244) 评论(0) 推荐(0) 编辑
C++ nullptr/nullptr_t
摘要:解释关键词 nullptr 代表指针字面量。它是 std::nullptr_t 类型的纯右值。存在从 nullptr 到任何指针类型及任何成员指针类型的隐式转换。同样的转换对于任何空指针常量也存在,空指针常量包括 std::nullptr_t 的值,以及宏 NULL。 引入原因 为什么引入nullp 阅读全文
posted @ 2022-11-02 18:50 一杯清酒邀明月 阅读(226) 评论(0) 推荐(0) 编辑
C++ 删除wchar_t *会导致堆损坏
摘要:在网上看,我找到了解决方案: pIta = new wchar_t[( nLIta + 1 ) * sizeof( wchar_t )]; 阅读全文
posted @ 2022-11-02 18:48 一杯清酒邀明月 阅读(45) 评论(0) 推荐(0) 编辑
C/C++ GetWindowRect()函数
摘要:函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。 BOOL GetWindowRect(HWND hWnd,LPRECTlpRect); 参数: hWnd:窗口句柄。 lpRect:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标。 返回 阅读全文
posted @ 2022-10-28 10:13 一杯清酒邀明月 阅读(290) 评论(0) 推荐(0) 编辑
C/C++ 窗口取消置顶后被父窗口挡住,HWND_TOPMOST与HWND_NOTOPMOST踩坑记录
摘要:遇到问题使用::SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);::SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE 阅读全文
posted @ 2022-10-28 10:09 一杯清酒邀明月 阅读(239) 评论(0) 推荐(0) 编辑
C/C++ RECT, PRECT, NPRECT, LPRECT;它们之间有什么区别?
摘要:typedef struct tagRECT{LONG left;LONG top;LONG right;LONG bottom;} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;RECT, PRECT, NPRECT, LPRECT;它们之间有什么区别? RECT 阅读全文
posted @ 2022-10-28 10:01 一杯清酒邀明月 阅读(499) 评论(0) 推荐(0) 编辑
C/C++ SetWindowPos 函数详解
摘要://声明:SetWindowPos(hWnd: HWND; {窗口句柄}hWndInsertAfter: HWND; {窗口的 Z 顺序}X, Y: Integer; {位置}cx, cy: Integer; {大小}uFlags: UINT {选项}): BOOL;//hWndInsertAfte 阅读全文
posted @ 2022-10-28 09:35 一杯清酒邀明月 阅读(611) 评论(0) 推荐(0) 编辑
C/C++ __cdecl和__stdcall的区别和联系
摘要:函数的调用约定涉及了函数参数的入栈顺序、清栈主体(负责清理栈的主体:函数自身还是调用函数者?)、部分名称重整。 如,在C编译方式下有_stdcall、_cdecl等调用约定,在C++编译方式下也有_stdcall、_cedecl等调用约定。 1、__cdecl和__stdcall __cdecl是C 阅读全文
posted @ 2022-09-26 16:45 一杯清酒邀明月 阅读(544) 评论(0) 推荐(0) 编辑
C/C++ x86-64的调用约定,忽略__stdcall、__cdecl、__fastcall、_thiscal
摘要:在设计调用约定时,x64 体系结构利用机会清除了现有 Win32 调用约定(如 __stdcall、__cdecl、__fastcall、_thiscall 等)的混乱。在 Win64 中,只有一个本机调用约定而 __cdecl 之类的修饰符都被编译器忽略。除此之外,减少调用约定行为还为可调试性带来 阅读全文
posted @ 2022-09-26 16:15 一杯清酒邀明月 阅读(64) 评论(0) 推荐(0) 编辑
C/C++ x86 x64下调用约定浅析
摘要:x86平台下调用约定 我们都知道x86平台下常用的有三种调用约定,__cdecl、__stdcall、__fastcall。我们分别对这三种调用约定进行分析。 __cdecl __cdecl是C/C++的默认调用约定,如果不显示声明调用约定的情况下,就是该调用约定。下面我们来从汇编层次来熟悉这种调用 阅读全文
posted @ 2022-09-26 16:12 一杯清酒邀明月 阅读(464) 评论(1) 推荐(1) 编辑
C/C++ __cdecl和__stdcall
摘要:一、先介绍几个背景知识 1. C/C++程序中函数参数入栈顺序默认是从右至左的。 这么设计是为了支持参数个数动态变化。先从栈中取出的,肯定是最左边的参数,这样就能够支持最右边的参数是可选的。反过来想想,如果采用自左向右的入栈方式,最前面的参数被压在栈底,这种情况下只有事先确定了参数个数,才能通过栈指 阅读全文
posted @ 2022-09-26 16:06 一杯清酒邀明月 阅读(277) 评论(0) 推荐(0) 编辑
C/C++变量命名规则
摘要:一、变量命名规范变量体如果是多个单词,每个单词的首字母大写。 int iStudentAge; 使用变量前缀 1、整型前缀 short sValue; // s为short的前缀 int iAge; // i为int的前缀 unsigned int uiAge; // ui为unsigned int 阅读全文
posted @ 2022-09-15 14:36 一杯清酒邀明月 阅读(810) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 10 ··· 14 下一页