break语句事实上跳出的是最近的那层循环语句 或 switch语句
下图中蓝色过程的是程序员想实现的执行流程,但是红色过程是实际的执行流程

这里"Cray"这个元素后面忘了写逗号,ANSI C引入的另一个特性是相邻的字符串常量常被自动合并成一个字符串。
可以在书写多行信息的时候在末尾加“\”的做法,但在这里他导致available_resources数组的元素量减少!available_resources[2] 元素值错误!

sizeof(int) *p这样的代码应该解释为int的长度乘以p而不是把指针p强制转换为int然后进行sizeof操作



采取fgets替代gets,因为gets无法检测缓冲区大小,超出缓冲区的数据会被放进堆栈中,导致堆栈中原先的数据被覆盖。

int *p[3];
*p[3]
声明形式和使用形式非常相似
好处是各种不同的操作符的优先级在”声明“和”使用”时是一样的
缺点是操作符的优先级是C语言中另外一个设计不当且过于复杂的地方


使用位段去操作寄存器 嵌入式常见操作

”在调用函数时参数按照从右到左的次序压倒堆栈里“,这句话是不对的。
参数在传递时首先尽可能地放到寄存器中(追求速度)