Memory alignment problem of structure members

在讲内存对齐之前,先介绍一个相关的概念——偏移量

把存储单元的实际地址与其所在段的段地址之间的距离称为段内偏移,也称为“有效地址或偏移量”。

简单来说,在结构体中偏移量指的是结构体变量中成员的地址和结构体地址的差。

阅读全文 »

C language does not have a native bool type

有点标题党了,准确的说是C语言标准中并无bool这个关键字来表示布尔类型。
在C++中我们通常使用bool变量存储逻辑值。
但是,C语言中是没有bool类型的,C语言中只有_Bool类型。
今天和人聊到这个问题,确实容易搞混淆,写出来记录一下。

阅读全文 »

Turning the Raspberry Pi into a portable Linux compilation environment

手头有块Rspberry 2B+,吃灰挺长时间了,由于一直在学校老是停电也就没拿它来跑脚本或者下载机。也正是因为最近学校SSH连接VPS的时候老是断电/网,很郁闷,所以折腾一下把树莓派搞成一个便携的编译环境。

阅读全文 »

Some misunderstandings about compiler-generated default constructors

当我们编写的一个类没有显式提供构造函数但编译器需要构造函数时(一定要注意这句话),编译器会为我们生成一个。
但是编译器生成的默认构造函数与我们假想其可以完成的行为并不一致。

阅读全文 »

Operating system interprocess communication

实现进程/线程间通信的方法有:

  1. 进程间通信方法有:文件映射、共享内存、匿名管道、命名管道、邮件槽、剪切板、动态数据交换、对象连接与嵌入、动态连接库、远程过程调用等
  2. 线程同步的方法有:事件、临界区、互斥量、信号量
阅读全文 »

C++11 syntactic sugar

从C语言过来觉得C++03和OO的特性简直不能更爽,最近着重看了一下C++11的新特性,觉得有好多很棒的语法糖啊!用起来也很爽啊。

阅读全文 »

Detailed analysis of type conversion in C++

在C++中,如果一个运算符的运算对象类型不一致,这些运算对象将转换成同一种类型。
类型转换分为隐式转换、和显式转换

阅读全文 »