我知道Macro implementation of putc() in C,但是它在C++中是一樣的嗎?putc實現爲宏ic C++?
回答
是的。 C和C++都使用<stdio.h>
,它在我所知的所有實現中都有相同的方案。
這將取決於您的cstdio
的實施。在大多數情況下,這實際上只是一個圍繞stdio.h
的包裝,在std
名稱空間內聲明瞭包裝,並且C
和C++
編譯器共享用於C
函數的相同標準庫。例如,VS2010使用stdio.h
爲C++
,其中putc
是作爲宏和函數實現的,具體取決於環境和其他編譯時定義。
非常感謝 –
@風鋼不客氣。你能看到你的'cstdio'文件並找出它使用哪一個?或者,您可以查看簡單示例的預處理器輸出以查看其使用情況。 – Anthony
哪個版本的C++? C++ 83(1983)? C++ 98(1998)? C++ 11(2011)?
C++ 98和C++ 11規範依賴於C庫函數的ISO C規範,並且不會對它們施加額外的實現約束,除了將stdio.h重命名爲cstdio.h並允許不包含點-h後綴的包含。
查找範圍cstdio.h如果你有興趣在特定的編譯器。然而,如果我們深入挖掘並看看ISO C標準:「ISO/IEC 9899:1990」(C89/C90),那麼我們發現它不能在網上免費觀看(而不是即使是最終的標準草案),所以移動到C99(不是ISO C),您會發現...
... C99(不是「ISO C」)表示putc()可以實現爲宏,
所以,如果你真的在的OBJ-C++(使用C99)開發,那麼C99是相關規範利弊ider,不是 ISO C(C90)。另外,由於C99允許編譯器編寫者決定是否使用putc()宏,所以您應該認爲它是一種開放的可能性,並決定是否真的關心C90(ISO C)規範是否過時(現在即使C11(2011)已經出來。)
無論現代最新的編譯器是否可能使用,其可能性都是putc()可以用另一種方式或兩種方式實現,如另一張海報所述。 – mda
- 1. 在C近拍實現putc將()的
- 2. 爲什麼fputc()當putc()?
- 3. 爲python實現宏記錄器?
- 4. putc將在文件
- 5. 在Excel上實現宏
- 6. Arduino F()宏的實現
- 7. putc和putchar的性能?
- 8. java.lang.NoClassDefFoundError:sbt/compiler/IC $結果
- 9. C標準允許將函數實現爲宏是否有任何限制?
- 10. 在C++中實現C#「只讀」行爲
- 11. 如何在C中實現一個通用宏?
- 12. 在C++中重載宏實現的函數
- 13. putc給出分段錯誤?
- 14. 混淆multibytecharacter集和`putc`
- 15. PyInstaller不更新IC
- 16. 如何實現Lisp宏系統?
- 17. 是否可以實現__super宏?
- 18. 用Scala宏替換類實現
- 19. 實現宏擴展期間的StackOverflowError
- 20. 如何在Flex/FlashDevelop/AS3中實現宏
- 21. 我怎樣才能實現推宏?
- 22. C/C++ #define宏內宏?
- 23. putc和ungetc有什麼區別?
- 24. 實現在C++
- 25. c#Math.Sqrt實現
- 26. C++ toUpper實現
- 27. 實現用C
- 28. C棧實現
- 29. AMQP C++實現
- 30. AODV C++實現
在C++中它將是'',它應該出現在全局和'std'命名空間中,所以我猜它不應該是宏或者至少不是隻是一個宏 –
@ K-ballo:是的。許多實現提供了宏和函數,以便可以操作函數指針。 – wallyk
很多?我期望所有符合標準的人都會...... –