|
|
|
|
 在C给程序中给全局变量指定地址 - antzcn [ 2005-02-28 12:14 | 453 byte(s)]
 Re: 在C给程序中给全局变量指定地址 - antzcn [ 2005-02-28 14:19 | 25 byte(s)]
 Re: 在C给程序中给全局变量指定地址 - antzcn [ 2005-02-28 14:33 | 259 byte(s)]
 Re: 在C给程序中给全局变量指定地址 - antzcn [ 2005-02-28 14:33 | 259 byte(s)]
 Re: 在C给程序中给全局变量指定地址 - shornmao [ 2005-03-02 08:58 | 347 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
/* ---------------------------------------------- */
extern struct gol {
int a;
int b;
} tem;
void main(void) {
.......
&tem = (struct gol *) 0x02000000;
......
}
/* ---------------------------------------------- */
在uClinux的应用程序中,给一个全局变量指定绝对地址.编译报错!
How to do? 谢谢!
|
|
|
----
Freedom!
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
就这样吧!
_______________________
struct gol {
int a;
int b;
};
void main(void) {
.......
struct gol *tem = (struct gol *) 0x02000000;
......
}
|
|
|
----
Freedom!
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
就这样吧!
_______________________
struct gol {
int a;
int b;
};
void main(void) {
.......
struct gol *tem = (struct gol *) 0x02000000;
......
}
|
|
|
----
Freedom!
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
从C语言本身的机制出发,只能采用这种方法,不过一般嵌入式的编译器往往提供了一种便利的工具,允许你在定义变量的时候直接指定地址。
如果是gcc的编译器,似乎是
int a __attribute__();
类似的形式,你可以查查gcc的手册,主要是attribute扩展,除了指定分配的地址外,还有许多其他有意思的功能,此外,好像还有等效的编译器预处理指令#pragma
|
|
|
----
彻底告别Windows 坚决只用Linux 永远忠于C++
|
|
[Original]
[Print]
[Top]
|
|
|