观心塾

不要成为一个无趣的大人

原因

计算机内存分了代码段(.text段)、初始化的数据段(.data段)、未初始化的数据段(.bss段)、堆空间(heap)、栈空间(stack)和命令行参数和环境变量区域。

程序计数器(Program Counter,简称 PC)的缺省指向0地址,计算机开机后从程序计数器指向的地址开始执行程序,每执行完一条指令后, 程序计数器自动加1。

因此很自然的,代码段从低地址区间开始加载,向高地址区间扩展;

heap从低地址向高地址扩展,做内存管理相对要简单些,为了避免栈空间和代码段冲突,最大利用地址空间,很自然的,我们会选择把栈底设置在高地址区间,然后让栈向下增长。

阅读全文 »

浮点数都是有符号的,没有 unsigned 浮点数

Q:

为什么没有无符号的浮点型,比如 unsigned floatunsigned double

A:

为什么 C/C++ 不支持无符号浮点数是因为CPU没有等效的机器代码操作来执行。因此支持它是非常低效的。

阅读全文 »

因为无法在公司内部搭建局域网,或者开发板没有网口,并且需要在windows和ARM板之间传输文件,这时就可以选择使用lrzsz,它可以将windows的文件通过串口传输到ARM板上。将lrzsz 安装到 ARM-linux 嵌入式板子上需要移植,但网上查到的资料很乱,有的讲述不清楚、甚至还有错误,所以自己写一个详细的记录,便于自己以后查看,也希望能帮助其他人。

阅读全文 »

表达式i < j < k在C语言中是合法的,但是它不是你所期望的意思。因为运算符是左结合的, 所以这个表达式等价于(i < j) < k.

换句话说, 表达式首先检测l.是否小于j, 然后用比较后产生的结果1或0来和K进行比较。 表达式不测试j是否位于i和K之间,正确的表达式应该是i < j && j < k.

阅读全文 »

言论

看到抽象的东西,应该尽量使它变得具体;看到具体的东西,应该尽量使它变得抽象。

--- 李敖

阅读全文 »

言论

逝者已经逝去,活着的还要前行。

--- 任正非 《我的父亲母亲》

本周话题

美国海军取消触摸屏

触控屏已经成为电子产品主流的交互模式,伴随触屏设备长大的年轻人被称为「触屏一代」。

除了智能手机,触控屏还应用到了汽车、军舰等大型交通工具中,在科幻电影里,经常会将所有平面变成触控屏来呈现,似乎触控屏就是交互的未来。然而不是所有人都喜欢触控交互。

阅读全文 »
0%