0%

第一次接触到较打的C++项目,项目由CMake构建,并使用GTest测试,而我之前对CMake的认知仅仅是Clion提供的自动创建和修改CMakeList.txt,对C++测试仅仅停留在写宏定义和测试用例,对LLT测试框架完全没有映像。搞懂项目的构建原理有利于尽快上手项目,于是打算在本文梳理一下CMake和GTest的基本用法,完整实现一个集成CMake和GTest的项目。

阅读全文 »

公司的换皮vscode是真鸡儿难用啊,还不如自己配vim!

基本配置

~/vim.rc下配置缩进和高亮:

set nocompatible "do not compatible with vi

set number! "show line number
set expandtab
set autoindent "set auto indent
set cindent "set clang auto indent
set shiftwidth=4
set softtabstop=4
set tabstop=4

syntax on "set syntax highlight
autocmd BufNewFile,BufRead *.c set syntax=c

set cursorline "highlight current line
set showmatch "highlight bracket matching
set showmode "show current op mode at bottom
set bg=dark "set background color

set hlsearch "highlight search result

阅读全文 »

构造函数

构造函数不能定义为虚函数

构造器的执行过程分为两个阶段:初始化普通计算

class Demo {
public:
int value1;
int value2;

Demo(int v1, int v2):value2(v2), value1(v1) { // 初始化
// 普通计算
}
}

阅读全文 »

想从已有的一个WiFi热点搭建另一个NAT WiFi热点,首先想到的解决方案就是用树莓派hostapd搭建个低功耗的路由器。但是我树莓派丢在了老家当机顶盒,打开淘宝想买个新的被最近飞涨的价格吓到了,于是打算尝试国产山寨开发板Orange Pi

  • 型号:Orange Pi Zero

用Orange Pi Zero内置WiFi网卡,以及额外的一个USB WiFi网卡来实现创建NAT WiFi子网。

阅读全文 »

C++建立在C语言的基础上,在系统化学习C++之前,先把本科学的C语言捡起来。

基本数据类型

基本数据类型长度和数据模型有关,有几种常见的数据模型:LP32、ILP32、LP64、ILP64、LLP64。

类型 LP32 ILP32 LP64 ILP64 LLP64
char 8 8 8 8 8
short 16 16 16 16 16
int 16 32 32 64 32
long 32 32 64 64 32
long long 64 64 64 64 64
ptr 32 32 64 64 64

char,short,long long,float,double的长度总是固定的,而指针长度往往和平台有关,而int,long长度和数据模型有关。

阅读全文 »