例如: 有一个文件,存储了4个常量数组,分别为A,B,C,D。如果代码中只引用了A和D数组,那么编译后的目标文件中,数组B和C的内容,编译器会自动忽略掉。
我需要是:无论代码中是否引用数组B和C, 以及其他没有使用的常量数组,编译的时候仍然要保留它的存储位置。请问如何设置编译器选项。
热门产品 :
CH32L103: 32位PDUSB低功耗单片机
例如: 有一个文件,存储了4个常量数组,分别为A,B,C,D。如果代码中只引用了A和D数组,那么编译后的目标文件中,数组B和C的内容,编译器会自动忽略掉。
我需要是:无论代码中是否引用数组B和C, 以及其他没有使用的常量数组,编译的时候仍然要保留它的存储位置。请问如何设置编译器选项。
找了编译器中的不强制删除无用数据或代码的选项。
但是,我发现编译器会自动调整A,B,C,D数组的存储顺序。
请问,如何设置才能让编译器,按照文件中的顺序生成目标数据或代码?
使用结构体或者 利用gcc 的扩展功能__attribute__ 强制指定指定地址
您好,可以参照下图使用,数组顺序按照ld文件中先后顺序指定。