如何指定c语言变量的位置

2020-01-24 12:00发布

我想定义一个char变量,如何把这个变量的地址指定在0x10?我用的是keil,c语言。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
laujc
1楼-- · 2020-01-25 05:02
勤劳的小码农 发表于 2014-4-1 07:27
程序嵌入汇编,要保证汇编不破坏c程序



LS的回答应该是可以的。你只是想指定变量的地址而已。或者试下这种写法。
  1. unsigned char idata myvar @ 0x10;
复制代码
勤劳的小码农
2楼-- · 2020-01-25 06:55
gallle 发表于 2014-4-1 07:33

错误:mian.c(198): error C274: 'myvar': absolute specifier illegal
勤劳的小码农
3楼-- · 2020-01-25 12:41
laujc 发表于 2014-4-1 08:23
LS的回答应该是可以的。你只是想指定变量的地址而已。或者试下这种写法。
...

错误:mian.c(198): error C141: syntax error near '@'
我是想控制c语言中变量分配的地址,在嵌入的汇编中使用这个变量的地址,这样就不会破坏c语言写的程序。
laujc
4楼-- · 2020-01-25 15:59
 精彩回答 2  元偷偷看……
yuyu87
5楼-- · 2020-01-25 20:15
laujc 发表于 2014-3-31 23:55
51单片机应该可以的,STM32应该也是可以的,但是我想知道为什么要这样做

用处太多了,比如这个变量是映射的外部存储器或者RAM等,
1066950103
6楼-- · 2020-01-26 02:11
heyj6969 发表于 2014-4-1 01:20
貌似是这样  *(char* 0x10) = 0x55

这种方法我觉得可以,但是担心的是怕其他定义的产量占用了这块内存,不晓得有没有一种语法去告诉编译器这块内存不用,我记得gcc里面可以个!

一周热门 更多>