如果頭文件中有一些#define
,它是否可用於包含該頭文件的源代碼? [類似於#define Bytef unsigned int
]是否從頭文件繼承#define(預處理器指令)
-3
A
回答
1
是的,你可以做到這一點。包括作品如下:
想象你有一個文件。
header.h
內容:
void HappyMakerPrototype();
void AnotherPrototype();
和源文件
src.c
內容:
void dummydec();
#include "header.h"
void main()
{
return;
}
在彙編它將通過預處理運行的第一步驟。
這裏的include行只是被包含文件的所有內容所取代。
,這樣,如果你需要一個輸出預處理後的文件時,它看起來像:
(在GCC和鏗鏘編譯器,你可以請求與參數-E
預處理的文件我想,這將有助於你理解)
void dummydec();
void HappyMakerPrototype();
void AnotherPrototype();
void main()
{
return;
}
0
是的,你可以做。當您包含該頭文件時,它將繼承該頭中的所有內容。所以你可以使用這個宏。
0
是的。包含一個文件與您在#include
指令的確切位置複製並粘貼頭文件的內容相同。
相關問題
- 1. 是否有預處理器「AND」指令
- 2. 在C#中的#if中使用#define預處理器指令是否有效#
- 3. 以奇怪的方式使用#define預處理器指令
- 4. 是否有預處理器選項在頭文件被預處理時顯示?
- 5. C++ #define預處理器
- 6. C#預處理器指令
- 7. Gfortran預處理器指令
- 8. VB.NET預處理器指令
- 9. DDK預處理器指令
- 10. 如何通過預處理器指令檢查編程是否在Visual C++中需要預編譯頭文件?
- 11. make文件預處理指令
- 12. 預處理器指令是否僅適用於寫入的文件?
- 13. fortran中是否有類似C中的預處理器指令?
- 14. 預處理器指令是否影響OpenCL內核性能?
- 15. F#中的預處理器指令縮進是否敏感?
- 16. 預處理器指令中的行是否正確?
- 17. 是否有預處理器指令使XCode構建失敗?
- 18. 是否存在處理預處理器指令並給出實際預處理器輸出的工具?
- 19. 是否可以使用XPath從處理指令('define')中提取值?
- 20. 嵌入式文本文件中的C#預處理器指令
- 21. #define預處理器的範圍C
- 22. C預處理器:#define in C ...諮詢
- 23. 預處理器指令:#elif未定義?
- 24. C#預處理器指令範圍
- 25. 預處理器指令conio.h C++
- 26. 個人預處理器指令
- 27. clBuildProgram的多個預處理器指令
- 28. 腳本#預處理器指令?
- 29. C預處理器指令和鏈接
- 30. nuget庫中的預處理器指令
這不是個好問題。你爲什麼問?你試過了嗎? – 2014-12-19 09:12:20
@SouravGhosh我正在修復一個錯誤。在zlib的更新日誌中,我發現使用define更改typedef。所以我認爲改變是定義的,因爲我們需要在源代碼中添加「define」。我試圖谷歌認爲是繼承定義,無法找到結果。所以我想我應該問 – 2014-12-19 09:14:04
預處理器將用包含文件的內容替換'#include'指令。我建議你嘗試一下查看預處理源。 – 2014-12-19 09:14:52