我想为指针分配一个地址值,但我得到了这个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);
^
如何正确地将我的地址分配给我的指针?
答案 0 :(得分:4)
变化:
ram_address = (long*) (PRODUCT_NUMBER_ADDR);
到
ram_address = (volatile long*) (PRODUCT_NUMBER_ADDR);
同时确保将ram_address
声明为volatile long *
。在这里使用volatile
告诉编译器,内存对象的值可能会意外更改,因此编译器不应该进行任何缓存假设。