关于keil编译器下指针指向数组警告的问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于keil编译器下指针指向数组警告的问题?相关的知识,希望对你有一定的参考价值。

keil 3编译器
在同一个项目下
在一个辅助的C文件中定义了一个数组code aaa[3]=0x00,0x01,0x02;
在主文main.C中可以利用extern关键字调用其数组。
但是在用“aaa”作用指针指向时,提示“pointer to different object”这个警告
求高手帮忙解决和指导 谢谢

aaa已经被你定义成了常量数组,并且定位在code区中,所以aaa只能被作为code区的常量使用,如果你把aaa作为一个xdata*型(即指向xdata区)的指针传递给某个需要xdata*参数的函数,那么编译器就会警告。
记住:
code char* aaa;aaa是一个char型指针常量,指向默认的存储区域。
char code* aaa;aaa是一个char型指针变量,指向code区域
参考技术A aaa这个对象的类型是unsigned char code *,你检查一下自己的指针类型声明吧。
注意区分以下两种:
unsigned char code *
code unsigned char *

KEIL-C下数组指针与指针数组实验

 http://blog.csdn.net/men_wen/article/details/52694069

 

第一个:

 

 

 

数组指针的小实验

 

用指针传递参数

结果:

 

 

 第二个:

数组指针实验

 

定义一个指针 他指向数组

 

把上面的测试函数中的参数传递部分换成这样  

换了之后 

实参传入部分会报错

必须加上取地址符号&

 

 

 

 

 第三种

形参:  定义一个数组  里面全是指针

 

 

 

 

 

 

最稳妥的在KEIL-C下   传递数组参数的方式如下:

 

 

 

 

数组指针的小实验

 

用指针传递参数

结果:

以上是关于关于keil编译器下指针指向数组警告的问题?的主要内容,如果未能解决你的问题,请参考以下文章

单片机编程。 keil中数组指针怎么用才规范呢?一直提示C182警告

Keil C51 中堆栈指针的问题

Keil 单片机C语言编译软件的使用(涉及指针数组)

关于在KEIL中对字符数组赋值字符串操作的奇怪问题?

Keil C51里关于堆栈指针的处理

用 keil编译的时候有两个警告怎么回事