【发布时间】:2017-10-04 22:10:17
【问题描述】:
我有这个 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]);
}
【问题讨论】:
-
它将
atr的内容创建为十六进制数字序列的字符串表示。每次循环时,它都会将两个新字符附加到存储在szTemp中的字符串的末尾。这假定len已在某处定义(它未在您提供的 sniipet 中定义)并且atr已在循环之前被初始化或分配。 -
我已经更新了代码。
-
表示代码在做Shlemiel's algorithm。
-
@JKHuiza 这不是上次的代码吗?为什么上次清除那段代码? Here
-
这是代码的第一部分。