#include<stdio.h> #include<string.h> #include<stdarg.h> typedef unsigned char SBYTE; typedef struct { SBYTE AddrLen; /*地址长度*/ SBYTE Addr[16]; /*地址*/ SBYTE InValid; /*0:有效1:无效*/ //SWORD CheckCRC; /*数据校验*/ }TERMINALADDRESS; TERMINALADDRESS temp_def={ .AddrLen=6, .Addr={0}, .InValid = 1, }; //封装使用vsscanf函数 void OsPackStrScanf(char *pdesn,char *format,...) { va_list args; va_start(args, format); vsscanf((char *)pdesn, (const char *)format, args); va_end(args); return; } int main(int argc, const char *argv[]) { char temp_buf[255]={0}; temp_def.AddrLen=6; //temp_def.Addr="122113311441"; memcpy(temp_def.Addr,"122113311441",12); unsigned char i; for(i=0;i<temp_def.AddrLen;i++) {
//转换 OsPackStrScanf(temp_def.Addr+i*2,"%2x",&temp_buf[i]); printf("temp_buf[%d]= %0x\n",i,temp_buf[i]); } return 0; }