大家好:
我有个编译器的问题,
我按顺序定义了如下常量:
const int constint0 = 0;
const int constint1 = 0;
const int constint2 = 0;
const int constint3 = 0;
const int constint4 = 0;
const int constint5 = 0;
const int constint6 = 0;
const int constint7 = 0;
const int constint8 = 0;
const int constint9 = 0;
const int constint10 = 0;
const int constint11 = 0;
const int constint12 = 0;
const int constint13 = 0;
const int constint14 = 0;
但是在map表中分配的地址不是按顺序分配的:
0000b000 2c0 (0000b000) _constint7
0000b001 2c0 (0000b000) _constint8
0000b002 2c0 (0000b000) _constint6
0000b003 2c0 (0000b000) _constint4
0000b004 2c0 (0000b000) _constint5
0000b005 2c0 (0000b000) _constint3
0000b006 2c0 (0000b000) _constint13
0000b007 2c0 (0000b000) _constint14
0000b008 2c0 (0000b000) _constint12
0000b009 2c0 (0000b000) _constint10
0000b00a 2c0 (0000b000) _constint11
0000b00b 2c0 (0000b000) _constint2
0000b00c 2c0 (0000b000) _constint9
0000b00d 2c0 (0000b000) _constint1
0000b00e 2c0 (0000b000) _constint0
我希望按顺序定义的变量按顺序分配地址,有办法吗?
Seven Han:请参考帖子:e2echina.ti.com/…/381578
大家好:
我有个编译器的问题,
我按顺序定义了如下常量:
const int constint0 = 0;
const int constint1 = 0;
const int constint2 = 0;
const int constint3 = 0;
const int constint4 = 0;
const int constint5 = 0;
const int constint6 = 0;
const int constint7 = 0;
const int constint8 = 0;
const int constint9 = 0;
const int constint10 = 0;
const int constint11 = 0;
const int constint12 = 0;
const int constint13 = 0;
const int constint14 = 0;
但是在map表中分配的地址不是按顺序分配的:
0000b000 2c0 (0000b000) _constint7
0000b001 2c0 (0000b000) _constint8
0000b002 2c0 (0000b000) _constint6
0000b003 2c0 (0000b000) _constint4
0000b004 2c0 (0000b000) _constint5
0000b005 2c0 (0000b000) _constint3
0000b006 2c0 (0000b000) _constint13
0000b007 2c0 (0000b000) _constint14
0000b008 2c0 (0000b000) _constint12
0000b009 2c0 (0000b000) _constint10
0000b00a 2c0 (0000b000) _constint11
0000b00b 2c0 (0000b000) _constint2
0000b00c 2c0 (0000b000) _constint9
0000b00d 2c0 (0000b000) _constint1
0000b00e 2c0 (0000b000) _constint0
我希望按顺序定义的变量按顺序分配地址,有办法吗?
sixuan ji:
回复 Seven Han:
HI Seven Han:
参考的帖子使用结构体的方法解决内存分配顺序问题,我的程序是从arm平台移植过来的,在arm平台编译时顺序是跟定义顺序一致,所以我想移植到TI平台也想要这样的编译效果,是否有方法解决,#pragma的说明文档我也看过,似乎没有可以解决的方法。再次请教,谢谢。
大家好:
我有个编译器的问题,
我按顺序定义了如下常量:
const int constint0 = 0;
const int constint1 = 0;
const int constint2 = 0;
const int constint3 = 0;
const int constint4 = 0;
const int constint5 = 0;
const int constint6 = 0;
const int constint7 = 0;
const int constint8 = 0;
const int constint9 = 0;
const int constint10 = 0;
const int constint11 = 0;
const int constint12 = 0;
const int constint13 = 0;
const int constint14 = 0;
但是在map表中分配的地址不是按顺序分配的:
0000b000 2c0 (0000b000) _constint7
0000b001 2c0 (0000b000) _constint8
0000b002 2c0 (0000b000) _constint6
0000b003 2c0 (0000b000) _constint4
0000b004 2c0 (0000b000) _constint5
0000b005 2c0 (0000b000) _constint3
0000b006 2c0 (0000b000) _constint13
0000b007 2c0 (0000b000) _constint14
0000b008 2c0 (0000b000) _constint12
0000b009 2c0 (0000b000) _constint10
0000b00a 2c0 (0000b000) _constint11
0000b00b 2c0 (0000b000) _constint2
0000b00c 2c0 (0000b000) _constint9
0000b00d 2c0 (0000b000) _constint1
0000b00e 2c0 (0000b000) _constint0
我希望按顺序定义的变量按顺序分配地址,有办法吗?
Loops:
回复 sixuan ji:
这是编译器行为。是由什么特殊需要一定要线形吗?
大家好:
我有个编译器的问题,
我按顺序定义了如下常量:
const int constint0 = 0;
const int constint1 = 0;
const int constint2 = 0;
const int constint3 = 0;
const int constint4 = 0;
const int constint5 = 0;
const int constint6 = 0;
const int constint7 = 0;
const int constint8 = 0;
const int constint9 = 0;
const int constint10 = 0;
const int constint11 = 0;
const int constint12 = 0;
const int constint13 = 0;
const int constint14 = 0;
但是在map表中分配的地址不是按顺序分配的:
0000b000 2c0 (0000b000) _constint7
0000b001 2c0 (0000b000) _constint8
0000b002 2c0 (0000b000) _constint6
0000b003 2c0 (0000b000) _constint4
0000b004 2c0 (0000b000) _constint5
0000b005 2c0 (0000b000) _constint3
0000b006 2c0 (0000b000) _constint13
0000b007 2c0 (0000b000) _constint14
0000b008 2c0 (0000b000) _constint12
0000b009 2c0 (0000b000) _constint10
0000b00a 2c0 (0000b000) _constint11
0000b00b 2c0 (0000b000) _constint2
0000b00c 2c0 (0000b000) _constint9
0000b00d 2c0 (0000b000) _constint1
0000b00e 2c0 (0000b000) _constint0
我希望按顺序定义的变量按顺序分配地址,有办法吗?
sixuan ji:
回复 Loops:
程序是从ARM平台移植的,在ARM平台不存在这个问题,要连续的目的是为了使用指针间接访问,由于参数变量相关的程序是通过软件自动生成,不能改变为结构体,我也看了《TMS320C28x Optimizing C_C++ Compiler》这个文档,没有找到我想要的方法。还有中方法是在CMD文件中一个一个参数地址,这样是比较麻烦的,以后参数发生变化,还要修改CMD文件。是否还有其它更好的方法解决呢?谢谢。