我有这个C代码。请有人解释一下这段代码吗?
char szTemp[100];
unsigned char atr[40];
uint32_t uiApdu= 0;
len = sizeof(atr);
memset(szTemp, 0, sizeof(szTemp));
for (y = 0; y < len; y++){
sprintf(szTemp + strlen(szTemp), "%02X", atr[y]);
}
特别是,这是什么意思?
for (y = 0; y < len; y++){
sprintf(szTemp + strlen(szTemp), "%02X", atr[y]);
}
答案 0 :(得分:-1)
在szTemp的每个sprintf长度(strlen(szTemp))之后将增加2,因此来自atr的40个字节将以十六进制形式写入szTemp
atr数组没有分配任何值,因此它基本上持有垃圾值