随笔分类 - 编译、编程问题类
记录编程过程中遇到的调试bug、问题以及基本知识、
摘要:1、 C++ 命名规则总结 命名风格 适用场景 示例 大驼峰(PascalCase) ✅ 类名 class NetworkManager; ✅ 结构体名 struct SystemPara; ✅ typedef结构体别名 typedef struct Point3D{.....}Point3D_t,
阅读全文
摘要:1、不同版本的MinGW 带有不同GNU版本,默认支持的C++标准不一致,编译时有时会报错,查看默认支持的命令如下 echo | g++ -dM -E -x c++ - | find "cplusplus"(windows) echo | g++ -dM -E -x c++ - | grep __c
阅读全文
摘要:1、两者编译的库不能通用,例如OpenCV(window) 是MSVC编译的,Qt中使用MinGW编译器调用OpenCV的dll会报错。 2、用MinGW编译通过的源码,换MSVC编译报错如下,主要原因是:编译器对字符的支持不同,深入了解可参考下方链接 https://zhuanlan.zhihu.
阅读全文
摘要:1. 避免多语句宏的问题 // 有问题的情况 #define MACRO a = 1; b = 2; if (condition) MACRO; // a = 1; b = 2;; b = 2不受条件限制 else do_something_else(); #define MACRO do { a
阅读全文
摘要:1. 区分&与&& 按位与(&)和逻辑与(&&) 例如 :if(0x8000) = if(很大的整数) 2. 什么是短路求值 if(a>b && c>d), 如果判断的a>b为真,则c>d不再进行判断 3. 值<<移动的位数(十六进制下的位操作)(8421码) #define ADC_CSR_AWD
阅读全文
摘要:1.作用 防止编译器优化对该变量的访问过程,确保每次访问都能得到最新的值。 编译器通常会对代码进行优化,例如将变量的值存储在寄存器中,以减少对内存的访问 2.应用 场景:1.硬件寄存器 2.中断服务程序中的变量 3.多线程程序中的共享变量 //stm32f407xx.h typedef struct
阅读全文
摘要:1. 基本用法 enum Color { //Color被称为枚举类型 RED, //默认是0开始 GREEN = 5, BLUE }; enum Color myColor; //enum Color myColor = RED; // myColor = 0 myColor = BLUE; //
阅读全文
摘要:常用写法 #ifdef __cplusplus //如果使用C++编译器(有__cplusplus宏定义) extern "C" { //告诉C++编译器按照C的名称修饰规则来处理函数名和变量名 #endif /* __cplusplus */ // 这里是C语言的函数声明或定义 void myCF
阅读全文
摘要:
阅读全文
摘要:堆的特点: 1.堆为按需申请、动态分配,例如 C 中的 malloc 函数和 C++ 中的 new 操作申请内存块。 2.程序提出申请时会从堆中找出一块可用内存,在程序结束之前,操作系统不会删除已经申请的内存,而是要靠程序主动提出释放的请求(free、delete),如果使用后忘记释放,就会造成所谓
阅读全文
摘要:#!/bin/bash # 指定的挂载点 MOUNTPOINT="/media/vm/MyDisk512GB" # 设置磁盘大小的限制 (例如:800G) LIMIT=$((800 * 1024 * 1024)) # 单位是KB # 获取挂载点的已使用空间 USED_SPACE=$(df -kP "
阅读全文
摘要:uname -m uname -a arch x86=i386=IA32 最老的intel 8086 典型 amd64=x86_64=x64 arm架构cpu的主流架构:armv8 适用于移动通信这种低成本、高性能、低耗电的领域(手机,嵌入式) arm64 = aarch64:armv8 处于64位
阅读全文
摘要:问题1:To run this application, you must install .NET Core 1.由于是基于.net core 3.1 的项目 所以下载版本是3.1的核心 (建议把能装的都装上) 下载 .NET Core 3.1 (Linux、macOS 和 Windows) (m
阅读全文
摘要:string mrl = @"dshow:// "; string optVideo = @":dshow-vdev=Integrated Camera"; //string optaudio = @":dshow-adev=麦克风 (Realtek(R) Audio)"; string size
阅读全文
摘要:C++ 出现类似的错误一般原因是 c++源文件 TransVoltage 函数前面没有加类名 IO
阅读全文