代码编织梦想

typedef用法-爱代码爱编程

typedef 可以给类型取一个新名字 给普通类型取别名 如: typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; 给结构体取别名 如: typedef struct people { int ag

可复用链表list.h-爱代码爱编程

这种用法惊艳到我了!!! 传统的教科书式的链表有个非常大的缺点: 一句话讲就是 复用性差每种类型的链表我们都需要编写不同的函数去实现增删改查等基本操作不仅效率低, 而且还容易出错而 linux内核 的 list.h 就是为了解决这一痛点而诞生的我们只需要添加基本的成员, 然后对 list.h 中的函数简单封装一下, 就能够实现想要的

智能指针必背点-爱代码爱编程

使用理由:方便管理堆内存,引用计数为0,会自动释放堆内存. c++11标准库 编译增加: -std=c++11 头文件: memory 一. shared_ptr 初始化方式: 例如:开辟int类型的空间,并用100初始化 方式1:int是类型,100是初始化值,类型可以随意替换 std::shared_ptr< int > a( new

彻底记住对齐补齐-爱代码爱编程

1.了解自己计算机编译器默认对齐大小 #include<stdio.h> int main(){ struct test { int a; long b; }; printf("%d ",sizeof(struct test)); } 结果分析: 如果代码执行结果为16,

googletest 和 googlemock 的环境搭建-爱代码爱编程

在很久以前, googletest ( 后面简称 gtest ) 和 googlemock ( 后面简称 gmock ) 仓库还没有合并, 他们分别对应 Github 的不同仓库, 不过现在他们都合并到了 gtest 仓库 gtest 的 Github 仓库现在我来教大家如何搭建 gtest 和 gmock 的环境 下载 g

const 笔记-爱代码爱编程

简介 “const” 是constant的缩写, 表示"海枯石烂, 恒定不变, 一旦相伴, 永不变心". how to 理解 将类型去掉看 const 修饰谁, 谁就拥有了不变的特性.举例 const int a = 10; 去掉 int, 变成了 const a = 10, a的值不变.int const a = 10; 去掉 int, 变成

计算一个 unsigned int 中 “1“ 的个数-爱代码爱编程

前段时间看到一个神奇的算法, 计算 unsigned int 类型中 1 的个数这个算法的厉害之处在于它的运行效率特别高, 下面是代码以及我做的笔记, 大家来讨论讨论.代码 int count_bits(unsigned int a) { unsigned int x = a; x = x - ((x >> 1) &

#和##的用法-爱代码爱编程

简介 C语言中经常用到 # 和 ##, 很多初学者不知道他们什么什么意思, 这儿我简单科普一下.#的用法 当做 replacement-text令牌, 转换为引号引起来的字符串... #define TO_STR(x) #x int main() { int value = 123; printf("TO_STR(value) = %s

预处理指令 #define 的用法-爱代码爱编程

在C/C++编程中, 经常会用到 #define 关键字, 但是在学习C/C++基础知识的时候老师一般很少会深入讲解它的所有功能, 一般是用的时候再去了解, 这人我总结了一下常见的用法, 如有遗漏欢迎指出. 下面通过简单的说明几个例子说明这几个的用法修饰常亮 ... #define PI 3.14 #define COUNTRY "CHINA" #de

条件编译指令 #define #undef #ifdef #ifndef #endif-爱代码爱编程

话不多说, 下面通过简单的说明几个例子说明这几个的用法定义与取消定义 定义AAA为111#define AAA 111 定义AAA, 但没定义AAA的值#define AAA 取消定义AAA, 之前定义的AAA无效#undef AAA 选择性定义 如果定义了AAA, 那么就定义ZZZ为222#ifdef AAA #define ZZZ 2

嵌入式编程技巧之------共用体union_iot小胡的博客-爱代码爱编程

嵌入式编程技巧之------共用体union union简介 共用体是一种特殊的数据类型,为了使用共用体,就必须使用union语句,简单的语法相关知识这里不做详细解释,请大家点击参考➢菜鸟教程 uni

【探讨】c++ delete[] 是如何知道数组大小的-爱代码爱编程

该问题值得探讨! Lippman在对象模型里提到过一些(P257-P263),拍几张主要内容的图片 下面是自己的测试以及知乎的一些讨论和解答: 先贴自己的测试代码、反汇编以及内存转储图(测试环境:CodeBlocks、编译器GCC、系统64位) 【分别测试了数组大小为3和5的情况】 从内

对c指针的深入理解-爱代码爱编程

指针是一片内存开始的地址,但是定义指针的时候却往往要加上类型。 例如:int *p; 而且指针指向的数据的类型和声明还要匹配(C标准不匹配可以编译通过且可以运行;C++标准不匹配编译报错)。 于是就激发了我研究为何要这样规定的兴趣。经过研究和实验,发现了原因,并且也加深了对指针的理解!!! 下面一一道来。 先上结论:声明指针所指向的数据的类