系统程序员成长计划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 而不是减去一个常量。

 

 

#

posted @ 2017-10-27 20:44  为民除害  阅读(127)  评论(0)    收藏  举报