I2C_ADDRS (addr, addrs...), i2c_addrsaddrs...
Macro definition in the iic driver:
/* Internal numbers to terminate lists */
# Define I2C_CLIENT_END 0 xfffeU
/* Construct an I2C_CLIENT_END-terminated array of i2c addresses */
# Define I2C_ADDRS (addr, addrs ...)\
(Const unsigned short []) {addr, # addrs, I2C_CLIENT_END })
I didn't understand it, so I wrote some test code for learning and understanding:
# Include
Using namespace std;
# Define I2C_CLIENT_END 1234
/* Construct an I2C_CLIENT_END-terminated array of i2c addresses */
# Define I2C_ADDRS (addr, addrs ...)\
(Const unsigned short []) {addr, # addrs, I2C_CLIENT_END })
/* Run this program using the console pauser or add your own getch, system ("pause") or input loop */
Int main (int argc, char ** argv )?
{
Const unsigned short * testArray = I2C_ADDRS (111,222,333 );
Cout < Cout < Cout < Cout < Cout < Cout <
Const unsigned short * testArray1 = (const unsigned short []) {111,222,333, 1234 });
Cout < Cout < Cout < Cout < Cout < Cout <
Return 0;
}
/*
Output result:
111
222
333
55
88
1234?
111
222
333
55
88
1234?
*/