英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3274|回复: 1
打印 上一主题 下一主题

请看看这是什么原因

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-24 13:58:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<pic.h>
char a1,a2,a3,a4;
#define DBYTE ((unsigned char volatile *) 0)
void pp(char y){
a1=DBYTE[y++];
a2=DBYTE[y++];
a3=DBYTE[y++];
a4=DBYTE[y];
}
void main(void){
bank1 static long cc=0x89abcdef;
char x;
x=&cc;
pp(x);
while(1);
}
再picc编译后出现如下的提示
Building TEST3.HEX...
Compiling TEST3.C:
Command line: "D:\HT-PIC\BIN\picc.exe -Gtest3 -D24 -E+ -Etest3.err -PSECTMAP -Mtest3.map -16F877 -ID:\HT-PIC\INCLUDE D:\PROJ1\TEST3.C"
D:\PROJ1\TEST3.C: 13: illegal conversion of pointer to integer (warning)
Build completed successfully.
是不是x被强行转换为整数行指针了,但是它说是非法转换。程序运行没有问题
2#
 楼主| 发表于 2009-3-24 13:58:28 | 只看该作者
数据类型转换问题
#include<pic.h>
char a1,a2,a3,a4;
#define DBYTE ((unsigned char volatile *) 0)
void pp(char y){
a1=DBYTE[y++];
a2=DBYTE[y++];
a3=DBYTE[y++];
a4=DBYTE[y];
}
void main(void){
bank1 static long cc=0x89abcdef;
char x;
x=(char)&cc;                               /*x 应为char*/
pp(x);
while(1);
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-5-17 20:41 , Processed in 0.050536 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表