奇思妙想

2024年 3月 21日

数组为什么允许-1作为下标?

C/C++/ObjC数组比较自由,数组下标仅仅代表和数组地址的偏移。偏移-1就是数组地址更小的地址。这种灵活的方式,允许从特定地址获取之前之后的地址。从数学的角度,类似数轴的正数和负数。

进一步了解
2024年 3月 20日

为什么结构体要考虑对齐?

硬件访问本身有对齐的要求。以intel 32位处理器为例,每次数据总线访问32位数据,只有以4字节对齐才符合硬件访问行为。如不对齐,就会出现CPU多次访问的问题。 尽管编译器或硬件有对齐的需求,有时也...

进一步了解
2024年 3月 20日

三字符组是什么来源?

早期计算机键盘,有的并不支持全部的ASCII码。例如字符|, 就需要用已有的按键代表,即三字符组的来源。例如printf(“??!”)可以输出 | . 即??!三个字符代替|, 当然,现代大部分键盘都...

进一步了解