我想,要知道,如果printf的支持功能,使用C超载,因为相同的printf函数可以在不止一种方式在一个C程序中使用。
回答
printf()
C是一个可变函数,它可以被认为是一种重载形式。与C++,Java,C#等语言中的重载函数不同,一个可变参数函数不是类型安全的,这就是为什么他们有些不悦。
我只想downvote,variadic函数和函数重载是非常不同的东西(只有一个printf函数,而不是不同的实现取决于参数)。你滑动的边缘与你的“可以被认为是”:) :) – 2011-04-27 10:12:11
@Binary各种各样的事情可以被认为是最通用形式的重载。如果你想把重载作为严格意义上的C++重载函数,那么没有什么不同。但正如多元主义可能意味着很多事情一样,超载也是如此。 – 2011-04-27 10:14:41
同意,但是我可以将猫和狗视为最常用形式的“动物”,但它不会帮助我的爱尔兰猎狼犬抓住老鼠:)只是说我认为_这种情况比一般人更具体。 。 。不幸的是,我不拥有爱尔兰猎狼犬。 – 2011-04-27 10:58:33
C没有基于签名的多态性,所以你不能这样做。有几种方法可以列出here。
更重要的问题是为什么你会想这样做?为什么printf对你来说不够通用?
如果你的意思
printf("something: %d\n", number);
printf("something else: %d, %s\n", number, string);
此无关超载的区别。这只是一个 variadic function
如果你问如何printf
采取不同的数量和类型的论证,然后不,它不是函数重载。函数可以被定义为可变参数列表。
看stdarg.h与可变arguement工作列出
- 1. C支持重载吗?
- 2. 函数重载在C++
- 3. C++中的重载函数
- 4. C++重载函数
- 5. 函数重载在C#在C
- 6. 函数重载在C中工作吗?
- 7. 在C++类中重载交换函数
- 8. 帮助C printf函数
- 9. TypeScript:将重载函数的参数转发给支持相同重载语法的类构造函数
- 10. 在C#4.0中,System.Windows.Window构造函数不支持任何参数
- 11. SonarQube MsBuild,支持C#7.0本地函数?
- 12. C#构造函数重载
- 13. C++函数模板重载
- 14. C++重载函数指针
- 15. C#构造函数重载
- 16. C++重载函数错误
- 17. C#函数重载规则
- 18. C++模板函数重载
- 19. C++重载函数问题
- 20. C++函数重载“常量”
- 21. 函数重载用C
- 22. 函数重载错误当重载cmath函数C++
- 23. 函数在TypeScript中重载
- 24. 在MATLAB中重载函数
- 25. 优化构造函数重载在C#
- 26. Objective-C中的函数重载?
- 27. Android中的C++函数重载ndk
- 28. 如何检测printf是否支持%a?
- 29. printf函数
- 30. iPhone SDK Objective C支持函数内部的函数吗?
你的问题是根本不清楚。请给出一个代码示例,说明您希望能够做什么。 – 2011-04-27 10:06:39
printf使用可变参数列表。它与函数重载不一样。 – forsvarir 2011-04-27 10:08:17
这是一个阅读问题,尽管措辞很差。 – 2011-04-27 10:09:08