我想将一个地址值分配给一个指针,但我收到了这个警告
:
#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 = (long*) (PRODUCT_NUMBER_ADDR);
到
ram_address = (volatile long*) (PRODUCT_NUMBER_ADDR);
还要确保 ram_address
被声明为 volatile long *
。此处使用 volatile
告诉编译器内存对象的值可能会意外更改,因此编译器不应做出任何缓存假设。
关于c - 如何将常量分配给指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34294039/