2-11章 笔记

来源:互联网 发布:红铅笔网络教育 编辑:程序博客网 时间:2024/04/29 10:32
  1. 注释不能嵌套,// 形式的不能跨行。
    C语言历史:Old Style C、 C89(ANSI C)、 C99(ISO/IEC9899:1999)

  2. main函数的特殊之处,在于执行程序时它自动被操作系统带哦用,操作系统就认准了main这个名字,除了名字特殊以外,main函数和别的函数没有区别。

C89 要求所有的声明写在所有语句之前,而C99的新特性允许语句和声明按任意顺序排列,只要标识符都遵循先声明后使用就好了。

  1. main函数最标准的形式:int main(int argc, char *argv[])
    抛弃以前的写法:main() {} ,这种语法是为了兼容 Old Style C

  2. 任何一个表达式都有值和类型两个属性。函数也是表达式。
    void 类型的函数返回值,其实也是有值的,为了语法和语义的统一,编译器的语法解析比较好实现。

  3. 一个容易被用户接受的设计应该遵循最少例外原则。
    void foo(int hour, int minute, char c) 为什么不写成 void foo(int hour, minute; char c)呢?
    这也是从 Old Style C 继承下来的,只是一种语法罢了。

  4. 注意区分用户命令和用户管理命令。
    /bin 和 /usr/bin ; /sbin 和 /usr/sbin。

  5. man :1(用户命令) 2(系统调用) 3(库函数) 4(特殊文件) 5(系统配置文件的格式) 6(游戏) ……

  6. 全局变量在编译时赋值。

  7. 能用循环做的事情,递归都能做。反之亦然。
    计算机指令能做的所有事情,就是:数据存取、运算、测试和分支、循环(或递归)。
    计算机指令无法执行的事情,高级编程语言也无法做到。至于为什么要这样设计计算机指令?就要问问图灵了。或者读一读计算机科学的书籍了。

  8. null: Non-printable

  9. C 代码风格:
    关键字 if、while、for,与其后的控制表达式的(括号之间插入一个空格分隔,但是括号内的表达式应该紧贴括号)
    双目运算符的两侧各插入一个空格分隔,单目运算符和操作数之间不加空格
    , ; 之后加空格,这是英文的书写习惯
    由于 Unix 系统标准的字符终端是24行80列的,接近或大于80个字符的较长语句要折行写。

  10. 调试的基本思想:分析现象 -> 假设错误原因 -> 产生新的现象去验证假设
    gdb 调试:http://www.vimer.cn/2009/11/%E4%BD%BF%E7%94%A8gdb%E8%B0%83%E8%AF%95%E7%A8%8B%E5%BA%8F%E8%AF%A6%E8%A7%A3.html

  11. bug - free很难。

  12. 学习 C 语言,就不得不去学习计算机底层,要不然一个scanf都写不好。

0 0
原创粉丝点击