古怪的写法,为什么编译器不认为是错误呢?
函数里面有一个这样的语句 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 |