摘要:
The Difference between Division and Arithmetic Right Shifting in C 你是否有听说过有符号数不能使用右移操作(>>)来代替除法? 这篇短文会向你证明它,并尝试向你解释为什么。当然,如果你没有听说过,那么从现在开始,记住它! Founda 阅读全文
摘要:
问题出在哪? 下面一段代码会输出什么呢? char c = 0xff; if (c == 0xff) printf("successful\n"); else printf("failed\n"); 答案是取决于不同的编译器设定: 当编译器将char识别为signed char时,该判断会失败。因为 阅读全文
摘要:
C语言的标准 我们在使用C语言编程时很少有人告诉我们C语言各个标准的情况,于是我们在看见一些函数标定支持的C标准(例如仅支持C99及以后),内心不会有什么波澜。 我们常见这些C标准:K&R C、ANSI C、ISO C、C89、C99、C11、C18。让我们补充点可能很少使用的知识吧。 什么是K 阅读全文
摘要:
枚举类型的优势 枚举类型完全可被宏定义替代,类如 enum Furniture { DOOR = 1, DESK, LOCK, } 与下面的代码等效 #define DOOR 1 #define DESK 2 #define LOCK 3 那么我们如何在两种设计方法中选择呢?在我看来某些情况下使用e 阅读全文
摘要:
# 背景 普通的二叉查找树在极端情况下可退化成链表,此时的增删查效率比较低。平衡的二叉树(如AVL、红黑树等)能较好的解决这个问题。 本文首先介绍了红黑树的五个重要性质,然后详细介绍了红黑树重要的两个操作——插入和删除的原理。最后将红黑树与Linux中虚拟内存的管理进行结合,用代码展示了红黑树插入、 阅读全文
摘要:
邮箱:wanglu082@yeah.net QQ : 1052658906 欢迎交流~ 实验3加入用户进程的概念,使用Capability-object模式来管理系统资源和分配权限,开始慢慢地体现微内核地设计原则 。 本次实验内容比较多,所以暂时分三个部分吧,后面如果有变动再更改。 练习 2 请简要 阅读全文
摘要:
Canonical and noncanonical mode 可能翻译为规范/非规范模式? 通过termios结构体的c_lflag成员来设置Canonical or noncanonical mode. 这两种模式是串口输入相关的配置。 Canonical模式中: 串口读取的单位是行,行定义为包 阅读全文
摘要:
现代操作系统:原理与实现配套实验ChCore-02 邮箱:wanglu082@yeah.net 欢迎交流~ 问题 1 请简单解释,在哪个文件或代码段中指定了 ChCore 物理内存布局。你可以从两个方面回答这个问题: 编译阶段和运行时阶段。 ChCore的物理内存布局可分为以下几部分: 保留(0x0 阅读全文
摘要:
使用动态库交叉编译生成可执行程序时,经常使用ldd指令来检查可执行程序链接的动态库是否定位到。 而问题是很多嵌入式Linux本身都是不带ldd指令的,所以想办法搞一个ldd上去是很有必要的! ldd与我们常用的ls、cd不用,ldd只是一个脚本,而ls、cd..都是可执行程序。 这就意味着我们不需要 阅读全文
摘要:
转载自:http://bbs.100ask.org/forum.php?mod=viewthread&tid=16231 在链接脚本中,经常有这样的代码: SECTIONS { ..... . = ALIGN(4); .rodata : { *(.rodata) } . = ALIGN(4); .d 阅读全文