自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 vscode shortcuts&cmd

ctr + p。

2026-08-21 14:35:24 194

原创 C++ 不完整类型 (Incomplete Type) + 友元成员函数

class Base;b->m_A = 1;// ❌ Base此时仍然incomplete!int m_A;关键点!很多人踩坑:虽然后续源码会定义Base;但是写在类体内的函数体,编译时机是解析Other类的时候,此时Base还没有定义,属于incomplete。✅解决:类内部只写函数声明,函数实现全部挪到所有类定义结束之后。

2026-08-18 12:51:35 382

原创 C++ 友元成员函数:前置声明、定义顺序问题

标准称呼friend member function declaration dependency / 友元成员函数声明依赖问题incomplete‑type friend of a class / 不完整类型作为友元成员函数友元成员函数循环前置声明陷阱(循环类依赖 + 友元成员函数)核心根源:引用另一个类的成员函数;仅仅前向声明Other是 incomplete‑type(不完整类型),编译器只知道类名,不知道该类有哪些成员函数,所以不允许写。(友元整个类)只需要不完整类型,是允许的。形式。

2026-08-18 12:24:14 399

原创 C/C++ 杂记-1

C++杂记

2026-08-17 21:37:13 397

原创 placement new(定位new)

new (addr) (T);定位new

2026-08-17 20:47:28 329

原创 cin.fail()== true

cin.fail() = true

2026-08-17 19:38:19 351

原创 extern “C“ in C++

extern "C"在混合语言工程中,最常见的做法是把extern "C"放在头文件声明处,这样 C 和 C++ 的翻译单元都能保持一致。如果声明和定义都按 C++ 编译,那么两边都必须约定使用 C 链接,否则不会得到 C 符号。extern "C"

2026-07-31 14:39:11 326

原创 C/C++ const -- 多义混乱

在编程里,constant 这个词是一词多义的;中文里的“常量”也是一词多义的。它们并不总是指同一个东西。混乱的根源在于:人们常常用“常量”来指至少四类东西:字面量、const 限定对象、编译期常量表达式、以及更宽泛的“不可变值”。

2026-07-24 14:15:42 382

原创 声明&定义

本文阐述了C语言中声明(declaration)、定义(definition)与暂定定义(tentative definition)的关系与区别。核心要点包括:1)声明是广义概念,定义和暂定定义都是其子类;2)文件作用域的int a;属于暂定定义,若无其他定义则最终转为零初始化定义;3)函数内部的int a;直接就是定义;4)extern int a;仅为声明不分配存储;5)带初始化的int a=10;必定是定义。特别强调文件作用域int a;的"暂定"特性是C标准明确规定,需同时满足外部链接、无其他定义等

2026-07-16 14:18:45 327

原创 常量和常量表达式3. C&C++中的区别

对于代码const int a = 5;int b = a + 10; C语言相应的汇编指令为`mov eax, [rbp-4]`(读a的内存)→ `add eax, 10` → `mov [rbp-8], eax`(赋值给b);而C++的汇编指令为mov dword ptr [rbp-8], 0xF`(直接赋值15,无内存读取);

2026-04-07 01:21:13 383

原创 常量和常量表达式2. const int a = 5;

const int a = 5;在c和c++中都是常量,但在c中为只读变量,而在c++中为真正的常量

2026-03-28 21:41:03 208

原创 常量和常量表达式1

常量和常量表达式

2026-03-28 21:35:45 371

原创 栈向下增长与程序中的变量地址大小问题

栈向下生长与变量地址大小问题

2026-03-28 17:09:16 397

原创 C语言中的宏函数要点

1.不要加`;`,宏是进行`文本替换`,若有`;`会被作为文本内容一同替换进去,这可能导致语句中间出现`;`2.参数括号的左括号应该紧贴宏函数名称3.把整个宏函数的表示式用括号括起来4.为宏函数的参数添加括号5.警惕宏函数导致的多次副作用(`++i`多次作用)6.多语句宏必须用 `do{...}while(0)`,不能用 `{}`,{}可能导致`else悬空`

2026-03-28 16:34:42 542

原创 计算机中的大小端

本文探讨了数字存储的两种模式:自然手写数字的大端存储与计算机常见的小端存储。手写数字「13245」从左到右书写,对应低地址到高地址的存储,最高有效位(万位)位于低地址,最低有效位(个位)位于高地址,这符合大端模式。而计算机存储如0x12345678时,小端模式将最低有效字节(0x78)放在低地址,与大端相反。判断规则基于低地址存放的是高位数据(大端)还是低位数据(小端)。

2026-03-28 12:19:06 322

原创 argc & argv

argc = 你在终端输了几个词(包括程序名)argv = 把你输的词存成字符串数组argv[0]永远是程序自己的名字。

2026-03-27 00:45:12 302

原创 escape character

escape character

2026-03-06 14:32:38 362

原创 linux下快捷删除单词、行的命令

注意:Alt 键在部分终端/桌面环境会被截获,这时可以先按 Esc 作为 Meta(Alt)的替代键,再按后续键(例如 Esc + d 相当于 Alt+d)。Bash(和大多数终端默认使用的 readline)中的键绑定。一、在 readline(默认 Emacs 风格)下的常用键。三、在 Bash 使用 vi 模式(如果你习惯 vi 操作)复制/粘贴(readline 的 kill-ring)回到 emacs 模式:set -o emacs。启用:set -o vi。四、查看/修改当前绑定。

2025-09-05 20:53:36 1094

原创 git命令解析

远端 ≠ 整个站点;远端 = 仓库地址(在某个站点下的一个仓库)。

2025-09-05 20:51:04 1280

原创 判断语句中std::cin隐式转换为bool--重载operator bool()

std::cin隐式转换为bool类型

2025-08-29 09:08:51 1002

原创 谓词-普通函数 重载会带来歧义,需要指定类型以消除歧义&谓词+const

当 std::sort / std::find_if 检查可调用性时,库会尝试以 const Compare& 的形式去调用 operator(),结果找不到可用的 const 成员重载,从而报错。下面分项详细解释并给出修复示例(Detailed explanation + fixes)一、重载的普通函数名(overloaded free functions)为什么会报错。二、仿函数(functor)operator() 重载与 const 要求。你要我把你给出的代码修改并给出可直接编译的版本吗?

2025-08-24 17:50:42 658

原创 C++ 编程问题记录

C++ 编程中的问题记录

2025-07-29 15:56:58 396

原创 编程中的英语

编程中的英语记录

2025-07-05 23:15:24 734

原创 vbptr&vbtable的机制和原理--内存详解

虚继承中的vbptr&vbtable工作机制和原理的详解,直接看内存,一目了然。

2025-06-23 18:15:33 1325

原创 pahole--C++中类的结构分析

使用pahole查看C++中类的结构

2025-06-20 13:25:47 1146 1

原创 C++常用英文对照

C++运算符对应的英文术语

2025-06-15 10:31:54 948

原创 C++杂记(编程中的问题记录)

code paths,函数的声明和实现中的参数名称一致性问题,<<的类内类外重载

2025-06-12 23:38:06 327

原创 C++杂记

Translation Unit(翻译单元)是 C/C++ 编译过程中的一个基本概念。它指的是编译器实际编译的源代码单元一个源文件(通常是.c.cpp文件)该源文件中包含的所有头文件(通过#include指令展开后的内容)以及所有宏展开和预处理后的内容换句话说,一个源文件连同它所有直接或间接包含的头文件,经过预处理后形成的整体,就是一个翻译单元。术语说明翻译单元 (TU)预处理后,一个源文件及其包含的所有头文件组成的整体静态成员变量的定义必须放在某一个翻译单元中,进行实际内存分配。

2025-06-09 13:45:14 867

原创 vscode的使用技巧&快捷键摘要

常用的技巧和快捷键可以查看vscode官方给的快捷键图表本文主要摘录一些快捷键图表上没有的内容。

2025-06-09 13:18:14 2039

原创 C++教程part1_namespace & namespace的内存分配

1.namespace的用法;2.namespace可以全局展开--使用全局的using声明/编译指令;3.namespace的内存分配

2025-06-08 22:52:35 1214

原创 gcc编译和反汇编相关指令

gcc编译和反汇编的相关指令以及指令的用法和功能的解析

2025-06-02 16:39:05 2135

原创 函数重载遇到引用时的问题

本文分析了C++中函数重载时引用参数的各种情况。当函数同时存在int和int&以及const int &版本时,调用func()会。。。

2025-06-02 13:42:35 191

原创 C 和 C++ 各个版本的变化及其对应的编译指令 (`-std=`)&gcc常见的一些编译指令&编译指令的使用时机/阶段

C 和 C++ 各个版本的变化及其对应的编译指令 (`-std=`)&gcc常见的一些编译指令&编译指令的使用时机/阶段

2025-05-30 09:30:38 616

原创 C++教程part1_using声明&using编译指令

using声明和using编译指令

2025-05-26 10:53:59 199

原创 ${workspaceFolder},${fileDirname},${fileBasenameNoExtension} vscode中的launch.json以及task.json中的文件

VS Code的launch.json和tasks.json中常用的变量参数及其作用: ${workspaceFolder} ${workspaceFolderBasename} ${file} ${fileBasename} ...

2025-05-26 09:58:02 2279

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除