我想,要知道,如果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++重載函數
- 6. 函數重載C++
- 7. 在ie8中不支持IE8 - .on()函數在ie8中不支持
- 8. 函數重載在C#在C
- 9. 函數重載在C中工作嗎?
- 10. 在C++中函數重載的困惑
- 11. 在Visual C++中重載函數
- 12. 在C++類中重載交換函數
- 13. 幫助C printf函數
- 14. 裝入C,printf函數
- 15. Php支持方法重載
- 16. 支持謂詞的C++模板函數
- 17. SonarQube MsBuild,支持C#7.0本地函數?
- 18. 什麼C++ OpenCV庫支持`threshold`函數?
- 19. 在C#4.0中,System.Windows.Window構造函數不支持任何參數
- 20. TypeScript:將重載函數的參數轉發給支持相同重載語法的類構造函數
- 21. C++重載函數錯誤
- 22. C++重載函數問題
- 23. C#構造函數重載
- 24. C#函數重載規則
- 25. C++重載函數指針
- 26. ANSI C和函數重載
- 27. C++ C2681重載函數,dynamic_cast
- 28. C++ va_list的函數重載
- 29. 函數重載用C
- 30. C#構造函數重載
你的問題是根本不清楚。請給出一個代碼示例,說明您希望能夠做什麼。 – 2011-04-27 10:06:39
printf使用可變參數列表。它與函數重載不一樣。 – forsvarir 2011-04-27 10:08:17
這是一個閱讀問題,儘管措辭很差。 – 2011-04-27 10:09:08