如何在调用send_data函数时在以下代码中正确编译SEPARATOR?
foo.h中
#define SEPARATOR 0xFF
void send_data(unsigned char * data, int dataSize);
foo.c的
void welcome(){
// I want to call it in a one line
send_data(SEPARATOR ,1);
}
顺便说一句,我当然可以将SEPARATOR定义为const char。但我只是想知道是否有任何方法可以像这样使用它。
答案 0 :(得分:3)
如果你不想改变它,老派的方法就是解决它:
void welcome(void)
{
unsigned char data = SEPARATOR;
send_data(&data, 1);
}
但你也应该能够使用C99复合文字:
send_data((unsigned char[1]) { SEPARATOR }, 1);
答案 1 :(得分:2)
复合文字(C99或更高版本)可能很有用。
void welcome(){
// I want to call it in a one line
send_data((unsigned char[]){SEPARATOR} ,1);
}
如果需要,请添加终止空字符。
void welcome(){
// I want to call it in a one line
send_data((unsigned char[]){SEPARATOR, 0} ,1);
}