我编写了这个 C 函数来发送一个 32 字节的数组来调试输出作为字符串。代码中有明显的重复。我怎样才能使它更整洁?确切的格式并不重要。
// data is guaranteed to be 32 long
void debug_log_32B( uint8_t *data ) {
char debug_msg[100];
char fmt[] = "%02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X %02X%02X";
sprintf( debug_msg, fmt,
data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8], data[9],
data[10], data[11], data[12], data[13], data[14], data[15], data[16], data[17], data[18], data[19],
data[20], data[21], data[22], data[23], data[24], data[25], data[26], data[27], data[28], data[29],
data[30], data[31]
);
debug_log( debug_msg );
}
即使我在循环中创建了格式字符串,sprintf
语句仍然很长。还是代码足够清晰?