英文名:《C Primer Plus》(5th)
作者:Stephen Parta
出版社:Sams
新公司的第一个月,重心放在了解项目组的基本情况,另外,通过配合前辈们做些简单的测试工作,学习一些工作上的知识和技能。一个偶然的机会,看到同组的同事在案头放了一本《C Primer Plus》,好奇心的驱使下,向同事借阅了一下,由于时间比较短,当时只看了一下目录和某一章的一小节,然后,决定买一本。
作为C语言的入门级教材,相当喜欢这本书。里面的内容丰富全面,把我大学时候的C语言基础,好好的填补了一下。而且作为将近1000页的英文书来说,读起来还不让人感觉太枯燥,当然时间不可能少花,3个多月的时间,不知不觉的就花在它身上了。
其中,我印象比较深刻的部分有以下几个:
1. 指针
指针对我来说,可以算的上是一个老大难了。从大学一直到现在都还在困扰我,特别是指针的指针,很多时候都会被绕晕,不知道它在上下文中应该是一个地址呢,还是应该是最终的值?还是平时用的比较少,对指针的理解不太彻底。不过,我想这个情况后面应该会有所好转,虽然工作当中接触指针的机会只是在定义函数参数的时候,但是,以后的Linux内核代码应该不会让人失望。
虽然指针学习来比较麻烦,不过它用起来还是相当强大的。到现在我都还对函数指针的使用啧啧称奇,特别是在编写回调函数的时候。
e.g
#include<stdio.h>
#include<string.h>
/*
** operation: compare two values, val1 and val2
** if val1 not equalval2, return 1
** otherwise, return 0
*/
int
compare_two(void const *val1, void const *val2,
int(*foo)(void const *arg1, void const *arg2))
{
return foo(val1, val2);
}
/*
** operation: compare two integer values, arg1 and arg2
** if