打印
[开发工具]

为什么数组给函数形参数组赋值提示警告?

[复制链接]
2361|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shuidi_wangdan|  楼主 | 2013-10-18 16:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教!定义函数如下:
uchar table[]={1,2,3}
void fa(uchar dat[])
{
......
}
void main()
{
   fa(table[]);
}
为什么这样使用提示警告?警告如下:
Warning [2054] suspicious pointer conversion,
提示可疑指针转换,
我使用的是MPLAB IDE C18 V3.44
请教高手怎么解决?我一直在困扰这个问题!!!


沙发
yewuyi| | 2013-10-18 17:29 | 只看该作者
使用数组地址传入试试。

使用特权

评论回复
板凳
伏尔加的鱼| | 2013-10-19 09:43 | 只看该作者
你把方括号去掉

使用特权

评论回复
地板
opal11| | 2013-10-19 16:38 | 只看该作者
我之前也出现过这个问题。

使用特权

评论回复
5
星星ARM| | 2013-10-20 21:11 | 只看该作者
为什么不这么写呢?
uchar table[]={1,2,3}
void fa(uchar X)
{
......
@@=table【x】;
}
void main()
{
    fa(X);
}

使用特权

评论回复
6
星星ARM| | 2013-10-20 21:13 | 只看该作者
不知道我猜你的想法估计就是想用table数组里的数据,那为什么不设一个中间参数取值呢。不知道我的想法对不对?

使用特权

评论回复
7
shuidi_wangdan|  楼主 | 2013-10-21 10:31 | 只看该作者
opal11 发表于 2013-10-19 16:38
我之前也出现过这个问题。

你解决了吗?

使用特权

评论回复
8
shuidi_wangdan|  楼主 | 2013-10-21 10:34 | 只看该作者
星星ARM 发表于 2013-10-20 21:11
为什么不这么写呢?
uchar table[]={1,2,3}
void fa(uchar X)

我是想把整个数组的数赋值给另一个数组,因为数组的值会随时发生变化,星星大哥有什么好的方法吗?

使用特权

评论回复
9
shuidi_wangdan|  楼主 | 2013-10-21 10:50 | 只看该作者
yewuyi 发表于 2013-10-18 17:29
使用数组地址传入试试。

叶大哥,可以具体一点吗?我想把整个数组的值赋值给形参数组,有好办法吗?

使用特权

评论回复
10
yewuyi| | 2013-10-21 11:29 | 只看该作者
uchar table[]={1,2,3}
void fa(uchar dat[])
{
......
}
void main()
{
   fa(&table);
}

使用特权

评论回复
11
shuidi_wangdan|  楼主 | 2013-10-21 11:34 | 只看该作者
本帖最后由 shuidi_wangdan 于 2013-10-21 11:37 编辑
yewuyi 发表于 2013-10-21 11:29
uchar table[]={1,2,3}
void fa(uchar dat[])
{

这样我试过,也是提示警告。
我自己定义了一个指针,如下:
uchar table[]={1,2,3}
uchar *p;
void fa(uchar dat[])
{
......
}
void main()
{
   p=&table[0];
   fa(p);
}
这样的话,没有提示警告,并且和预想的是一致的。
不知道为什么这样没有警告?

使用特权

评论回复
12
yewuyi| | 2013-10-21 11:38 | 只看该作者
本帖最后由 yewuyi 于 2013-10-21 12:26 编辑
shuidi_wangdan 发表于 2013-10-21 11:34
这样我试过,也是提示警告。
我自己定义了一个指针,如下:
uchar table[]={1,2,3}

我的那种写法在我这里没有提示任何警告。

你的那种写法和我的想法基本相同,都是转化为地址传送。

使用特权

评论回复
13
shuidi_wangdan|  楼主 | 2013-10-21 11:42 | 只看该作者
yewuyi 发表于 2013-10-21 11:38
我的那种想法在我这里没有提示任何警告。

你的那种写法和我的想法基本相同,都是转化为地址传送。 ...

以前用keil的没出现过这种警告,看来编译软件不一样,编译效果也不一样,我还要努力学习啊!谢谢你!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:奇葩满天下,不分你我他! 奋斗!https://bbs.21ic.com/static/image/smiley/chubby/17.gif[/url]

65

主题

549

帖子

3

粉丝