c语言使用数组接收MAC地址问题
#define MAC "00-1e-33-44-55-66"
unsigned char mac[6];
怎样可以将MAC格式化到mac数组里面啊。
我使用的方法是,sscanf(MAC,"%2x-%2x-%2x-%2x-%2x-%2x", &mac[0],&mac[1],...,&mac[5]);
这样子在linux下会报warning:格式化"%2x"需要unsigned int *,但是这里是unsigned char *。在windows下用dev-c++不会报错,但是打印数组时(printf("%2x",mac[i])循环打印),打印结果是01e33445566,第一个0是一个空格。
是在不知道怎么解决,求大家帮帮忙!
[解决办法]
#define MAC "00-1e-33-44-55-66"
unsigned char mac[6];
int v[6],i;
sscanf(MAC,"%2x-%2x-%2x-%2x-%2x-%2x", &v[0],&v[1],&v[2],&v[3],&v[4],&v[5]);
for (i=0;i<6;i++) mac[i]=(unsigned char)v[i];