|
引用 1 楼 xqhrs232 的回复:
还有个怪现象
在A。CPP里面定义了
const int AirBtn_Pos[7][2]
在B。CPP里面引用
extern const int AirBtn_Pos[7][2]
这样编译老是报错-----1>B.obj : error LNK2001: 无法解析的外部符号 "int (* AirBtn_Pos)[2]" (?AirBtn_Pos@@3PAY01HA)
为什么?
const 不能作为全局全局量引用,编译时被限制为Static只在对象的内部可见,外部可见会被标示为External
在A.CPP里面定义了
const int AirBtn_Pos[7][2]
在B.CPP里面也定义
const int AirBtn_Pos[7][2]
是两个不同的实例,相互之间没有关系,也不能在其他文件引用
const 会被加入rdata段,这是个Readonly段,修改这里面的数据会引发一个expert,防止程序在运行过程中改变数据
不会减少内存的占用,但是会减少stack的占用,否则数据会被放到stack,对于大规模数据节约stack很有意义
ROM可以当RAM使用,你也太有才了,norflash确实可以XIP,但和RAM是两个概念, |
|