C语言中函数指针的简单探讨?
- 内容介绍
- 文章标签
- 相关推荐
本文共计500个文字,预计阅读时间需要2分钟。
MFC虽无未来,但我觉得MFC的思想仍具研究价值。在MFC中,或某些底层代码的编写中,宏的使用相当好。为什么?因为宏只是简单的替换,不涉及类型转换。
MFC虽然没有未来,但是我觉得MFC的思想还是有必要研究研究的,在MFC中或者一些底层代码的编写中,宏是相当好用的,为什么呢?因为宏只是简单的替换,不进行类型转换,替换就意味着灵活,而C语言编程的灵魂就是灵活啊。
但是在高级语言中,甚至C++中,是提倡用const的,不提倡用#define,因为#define有一定的副作用,玩不好就没命了。
这里我们讨论下#define的副作用。
# include <stdio.h> # include <stdlib.h> # define CALL_WITH_MAX(a,b) f((a)>(b)?(a):(b)) int main(void) { int a = 5; int b = 0; CALL_WITH_MAX(++a,b); CALL_WITH_MAX(++a,b+20); return 0; }
分析:
上面的问题,不知道大家有没有看出来。
本文共计500个文字,预计阅读时间需要2分钟。
MFC虽无未来,但我觉得MFC的思想仍具研究价值。在MFC中,或某些底层代码的编写中,宏的使用相当好。为什么?因为宏只是简单的替换,不涉及类型转换。
MFC虽然没有未来,但是我觉得MFC的思想还是有必要研究研究的,在MFC中或者一些底层代码的编写中,宏是相当好用的,为什么呢?因为宏只是简单的替换,不进行类型转换,替换就意味着灵活,而C语言编程的灵魂就是灵活啊。
但是在高级语言中,甚至C++中,是提倡用const的,不提倡用#define,因为#define有一定的副作用,玩不好就没命了。
这里我们讨论下#define的副作用。
# include <stdio.h> # include <stdlib.h> # define CALL_WITH_MAX(a,b) f((a)>(b)?(a):(b)) int main(void) { int a = 5; int b = 0; CALL_WITH_MAX(++a,b); CALL_WITH_MAX(++a,b+20); return 0; }
分析:
上面的问题,不知道大家有没有看出来。

