这句printf是什么意思?
printf( "%s%x ",(i == ETHER_ADDR_LEN) ? " " : ": ",*ptr++);
[解决办法]
printf( "%s%x ",(i == ETHER_ADDR_LEN) ? " " : ": ",*ptr++);
if i == ETHER_ADDR_LEN
%s -> " "
else
%s -> ": "
%x -> *ptr++
[解决办法]
printf( "%s%x ",(i == ETHER_ADDR_LEN) ? " " : ": ",*ptr++)
用得是一个?运算符,表示当i == ETHER_ADDR_LEN成立时对应%s输出“ ”,否则输出 ": "。
另外的一个*ptr++的值对应%x输出(也就是16进制的形式输出)。