0
我想一個地址值賦給一個指針,但我得到這個warning
:如何爲指針指定常量?
#define PRODUCT_NUMBER_ADDR 0x12345
"foo\foo.c", line 1444: cc1967: {D} warning: "long *" pointer set to
literal value - volatile needed?
ram_address = (long*) (PRODUCT_NUMBER_ADDR);
^
如何正確我我的地址分配給我的指針?
編譯器很可能會警告你,'ram_address'不是易失性的,當讀取硬件本身更新的RAM地址時,通常需要這樣做(這通常是將指針指向文字地址時所要做的)。無論如何,這只是一個警告;該代碼仍然應該編譯。 –
如果你提供一個最簡單的工作例子,這個問題會更有用。儘管有些人在猜測你的代碼是基於顯示的錯誤消息的時候非常成功,但對於未來的讀者來說,看看問題中的實際代碼會更有用。 – 5gon12eder
如果你有硬件寄存器,使用內置類型是一個壞主意。使用'stdint.h'類型,例如而不是uint32_t'(強烈推薦未簽名的版本)。 – Olaf