打印

","可有**了

[复制链接]
2055|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
将军令|  楼主 | 2009-7-17 14:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
古怪的写法,为什么编译器不认为是错误呢? 

函数里面有一个这样的语句
 mirroring_read_data= I2C_Data_Read(rom_p0, (rom_p0, (0x0e + (temp * 6))));        //... Camera Mirroring Setup        1: ON  0: OFF
 但是他的函数原型是这样的:
unsigned char I2C_Data_Read(unsigned char slaveid,unsigned char slaveadd)

上面的句子在编译器里面出现警告
因为他的第二个参数是这样的:(rom_p0, (0x0e + (temp * 6)))
我怎么也看不出来这样的句子怎么能够代替同一个unsigned char。。。。这样的句子应该错误才对

后来我把句子更改成下面这样,就编译pass了,不再警告
    U8 address=0x0d + (temp * 6);

    //sharpness_read_data = I2C_Data_Read(rom_p0, (rom_p0, (0x0d + (temp * 6))));        //... Camera Sharpness Setup        1: Low  2: Middle 3: High 4: Highest
    sharpness_read_data = I2C_Data_Read(rom_p0, address);        //2009-7-17 12:11编译通不过,这里改掉了

我的问题是,原先的写法,为什么编译器不认为是错误呢?  百思不得其解。。。。
我的编译器是microchip C30

相关帖子

沙发
李冬发| | 2009-7-17 14:41 | 只看该作者

豆号运算符

使用特权

评论回复
板凳
sz_longyue| | 2009-7-18 08:57 | 只看该作者

同上

使用特权

评论回复
地板
ayb_ice| | 2009-7-18 16:33 | 只看该作者

","可有**了

使用特权

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

本版积分规则

180

主题

937

帖子

1

粉丝