系统程序员成长计划005
1. 这个变成大写的函数,就不需要用函数指针来给foreach做参数了。
因为他没有什么其他变种,不像print那样,既要print int又要print str。
函数指针,或者说回调函数,别瞎用!
2. 书里的写法
dlist_foreach(dlist, str_toupper, NULL);
看来还是坚持了回调函数的上下文参数要保留,所以这里只用了null。因为转换成大写,并没有需要记录保留的中间部分,一次即可完成。
3. 因为大小写字母在不同语言中的定义是不一样的,’a’是一个字符常量,它的值在任何时候都 是 97,但在不同语言中,97 却不一定代表’a’。
我们不能简单的认为在 97(‘a’)-122(‘z’)之间的字符就是小写字母,
而是应该调用标准 C 函 数 islower 来判断,
同样转换为大写应该调用 toupper 而不是减去一个常量。
#
联我:shen5773384##163.com