回答
我覺得sram
意爲 「RAM開始」。
unsigned char[1]
無符號字符的尺寸1的數組。
unsigned char(*)[1]
A pointer to an array大小爲1的無符號字符。
(unsigned char (*)[1]) 0
將0轉換爲無符號字符大小爲1的數組的指針。
*((unsigned char (*)[1]) 0)
讀取位置0處的一些內存,並將結果解釋爲無符號字符大小爲1的數組。
(*((unsigned char (*)[1]) 0))
#define sram (*((unsigned char (*)[1]) 0))
定義變量sram
起始於位置0的存儲器,並解釋該結果作爲無符號字符的尺寸1的陣列。
+1,爲我提供了一個關於「漫遊指南」五部曲三部曲難題的解釋。哦,我猜你的答案也可以。 – 2010-02-23 18:24:54
或者在嵌入式系統上,它可能意味着「SRAM」(靜態隨機存取存儲器),它通常是由微控制器的片上RAM構成的。 – Clifford 2010-02-23 18:40:22
我認爲它返回的內存(RAM)的基地址(0):)
它將「sram」定義爲指向從零開始的內存的指針。你可以通過指針訪問內存,例如sram [0]是地址零,sram [1]是地址1處的東西,等等。
具體來說,它將cast 0指向無符號字符數組的指針,並通過該指針間接無符號字符)。
類似的結果可以通過
#define sram ((unsigned char*)0)
獲得它也是標準C完全不確定的,但是,這並不使用它,並有天使飛出自己的肚臍的阻止人們。
+1 - 現在我知道天使從何而來。 – 2010-02-23 18:10:33
- 1. 在C中,這個宏定義了什麼?
- 2. *這裏定義了什麼?
- 3. 這個數組定義做了什麼?
- 4. 這個rsAssert宏的含義是什麼?
- 5. 這段代碼定義了什麼類?
- 6. 爲什麼在這個宏定義中需要@符號?
- 7. 什麼是定義這個C宏的正確方法?
- 8. 爲什麼#定義一個空的宏?
- 9. __NSX_PASTE__定義一個宏需要什麼?
- 10. 爲什麼只定義一個宏,如果它尚未定義?
- 11. 這個宏擴展到了什麼地方?
- 12. 我在做什麼這個方法定義和調用錯了?
- 13. <algorithm>定義了一個宏X?
- 14. 哪裏定義了autoconf宏?
- 15. 爲什麼在C中定義這樣的'max'宏?
- 16. 爲什麼我無法定義這些宏名稱?
- 17. Ruby Tempfile#tap:什麼類定義了這個方法,它用於什麼?
- 18. 這個cronjob做了什麼?
- 19. 如何理解這個定義宏?
- 20. operator()()定義了什麼?
- 21. 這是什麼「#define CONCAT_3(p1,p2,p3)p1 ## p2 ## p3」宏定義是什麼意思?
- 22. 這個C++宏是做什麼的?
- 23. 這個C宏是什麼意思?
- 24. 這個宏爲什麼複製多次?
- 25. 這個宏函數是什麼意思?
- 26. 這個宏有什麼問題?
- 27. 這2個宏有什麼區別?
- 28. 這個宏有什麼問題?
- 29. 爲什麼使用這個宏?
- 30. 這個run_on_main()宏有什麼問題嗎?
很難說。你能提供一個如何使用它的例子嗎? – 2010-02-23 18:04:25