C语言中函数指针的简单探讨?

2026-05-08 18:402阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计500个文字,预计阅读时间需要2分钟。

C语言中函数指针的简单探讨?

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分钟。

C语言中函数指针的简单探讨?

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; }

分析:
上面的问题,不知道大家有没有看出来。

阅读全文