一站式学习C编程

宋劲杉

出版时间

2011-03-01

ISBN

9787121129827

评分

★★★★★

标签

编程

书籍介绍

《一站式学习c编程》有两条线索,一条线索是以linux平台为载体全面深入地介绍c语言的语法和程序的工作原理,另一条线索是介绍程序设计的基本思想和开发调试方法。本书分为两部分:第一部分讲解编程语言和程序设计的基本思想方法,让读者从概念上认识c语言;第二部分结合操作系统和体系结构的知识讲解程序的工作原理,让读者从本质上认识c语言。

《一站式学习c编程》适合做零基础的初学者学习c语言的第一本教材,帮助读者打下牢固的基础。有一定的编程经验但知识体系不够完整的读者也可以对照本书查缺补漏,从而更深入地理解程序的工作原理。《一站式学习c编程》最初是为北京亚嵌教育研究中心的嵌入式linux系统工程师就业班课程量身定做的教材之一,也适合作为高等院校程序设计基础课程的教材。本书对于c语言的语法介绍得非常全面,对c99标准做了很多解读,因此也可以作为一本精简的c语言语法参 考书。

AI导读
核心看点
  • 以Linux为载体深入讲解C语言语法与原理
  • 结合操作系统知识剖析程序底层运行机制
  • 系统介绍程序设计思想与开发调试方法
适合谁读
  • 零基础初学者,作为入门首选教材
  • 有编程经验但需完善知识体系的开发者
  • 高校计算机专业学生及嵌入式工程师
读前提醒
  • 建议配合Linux环境阅读以理解底层原理
  • 后半部分涉及系统编程,难度较大需耐心
  • 注重动手实践,通过习题巩固理论知识
读者共识
  • 逻辑清晰严谨,优于传统填鸭式教材
  • 国产技术书籍佳作,作者态度认真负责
  • 内容全面深入,适合构建完整知识体系

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "尽管函数式宏定义和真正的函数相比有很多缺点,但只要小心使用还是会显著提高代码的执行效率,毕竟省去了分配和释放栈帧、传参、传返回值等一系列工作,因此那些简短并且被频繁调用的函数经常用函数式宏定义来代替实现。"
  • "在函数式宏定义中,#运算符用于创建字符串,#运算符后面应该跟一个形参(中间可以有空格或Tab) #define STR(s) # s STR(hello world) 在宏定义中可以用##运算符把前后两个预处理Token连接成一个预处理Token,和#运算符不同,##运算符不仅限于函数式宏定义,变量式宏定义也可以用。 #define CONCAT(a, b) a ## b CONCAT(con, cat)"
  • "C标准规定了几个特殊的宏,在不同的地方使用可以自动展开成不同的值,常用的有__FILE__和__LINE__,__FILE__展开为当前源文件的文件名,是一个字符串,__LINE__展开为当前代码行的行号,是一个整数。"
  • "~运算符也要做Integer Promotion,所以在C语言中其实并不存在8位整数的位运 算,操作数在做位运算之前都至少被提升为int型了"
  • "计算过程是这样的:常量0xfc是int型的,赋给c要转成unsigned char,值不变;c的十六进制表示 是fc,计算~c时先提升为整型(000000fc)然后取反,最后结果是ffffff03。注意,如果把~c看成 是8位整数的取反,最后结果就得3了,这就错了。为了避免出错,一是尽量避免不同类型之间的赋 值,二是每一步计算都要按上一章讲的类型转换规则仔细检查。"
  • "由于类型转换和移位等问题,用有符号数做位运算是很不方便的,所以,建议只对无符 号数做位运算,以减少出错的可能。 一个数和自己做异或的结果是0。如果需要一个常数0,x86平台的编译器可能会生成这样的指 令:xorl %eax, %eax。不管eax寄存器里的值原来是多少,做异或运算都能得到0,这条指令比同 样效果的movl $0, %eax指令快,因为前者只需要在CPU内部计算,而后者需要访问内存"
  • "x ^ x ^ y == y,因为x ^ x == 0,0 ^ y == y。这个性质有什么用呢?我们来看这样一个问题:交 换两个变量的值,不得借助额外的存储空间,所以就不能采用temp = a; a = b; b = temp;的办法 了。利用位运算可以这样做交换:"
  • "习题 1、上面打印的小九九有一半数据是重复的,因为8*9和9*8的结果一样。请修改程序打印这样的小九九: 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81"
作者简介
宋劲杉,亚嵌教育资深讲师,清华大学自动化系硕士,6年嵌入式系统开发经验,3年嵌入式行业教学经验,精通Linux内核、POSIX、TCP/IP,擅长ARM平台的Linux系统移植和应用开发,目前关注的方向有分布式系统、动态语言。爱好:开源软件、电子音乐、HomeParty
目录
《一站式学习c编程》
上篇 c语言入门
第1章 程序的基本概念 2
1.1 程序和编程语言 2
1.2 自然语言和形式语言 6

显示全部
用户评论
买这本书是想学习一下怎么Makefile,最后还是放弃了。作者试图写一本不一样程序设计入门书籍,很多部分的讲解都很赞,然后其实我还是没学会Makefile,做起来和看完全是两码事。
有些地方讲得过于繁复,Linux部分难度略大,不过仍然是本很好的书。
来龙去脉讲得清楚,也涵盖了Linux部分,国内中文教材算上等了。
用这样的书为基础来做教材才是大学生的幸福。关于 C语言说得有模有样,不过Linux 该说的就基本没有讲到。 但是写作的思路是对的,很好。
终于明白还是太嫩了。。。修行在自身噶~,我将上下而求索!
这本书的整体思路非常不错,大部分的C语言相关内容都有介绍了,不过很多地方如果没有前置知识看起来会很头疼,大部分地方的篇幅不够,需要额外的找资料学习。下篇的原理篇建议先看看CSAPP。另外就是代码排版不太好。
名不副实, 比较一般.
这是一本包罗万象的书啊,适合大一的学生。作为教材太合适了。
扔掉谭C换这本书吧,国人写的这么好的真的不容易。不过后半部分大量涉及到汇编等底层原理,对初学者反倒不友好了。
@2017-08-28 00:09:45
下载
收藏