如何为指针赋值常量?

时间:2015-12-15 16:11:53

标签: c pointers

我想为指针分配一个地址值,但我得到了这个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);
                                     ^

如何正确地将我的地址分配给我的指针?

1 个答案:

答案 0 :(得分:4)

变化:

ram_address = (long*) (PRODUCT_NUMBER_ADDR);

ram_address = (volatile long*) (PRODUCT_NUMBER_ADDR);

同时确保将ram_address声明为volatile long *。在这里使用volatile告诉编译器,内存对象的值可能会意外更改,因此编译器不应该进行任何缓存假设。