2017-05-06 4 views
-6

Ich habe diesen C-Code. Bitte kann jemand diesen Code erklären?C-Code, was ist die Bedeutung?

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]); 
} 

Insbesondere Was bedeutet das?

for (y = 0; y < len; y++){ 
     sprintf(szTemp + strlen(szTemp), "%02X", atr[y]); 
    } 
+0

Es erstellt eine Zeichenfolge Darstellung des Inhalts von 'atr' als eine Folge von hexadezimalen Ziffern. Jedes Mal, wenn die Schleife durchlaufen wird, fügt sie zwei neue Zeichen an das Ende der in 'szTemp' gespeicherten Zeichenfolge an. Dies setzt voraus, dass "len" irgendwo definiert wurde (es ist nicht in dem von Ihnen bereitgestellten snipipet definiert) und dass "atr" vor der Schleife initialisiert oder zugewiesen wurde. –

+0

Ich aktualisiere den Code bereits. –

+0

Es bedeutet, dass der Code den [Shlemiel-Algorithmus] (http://wiki.c2.com/?SchlemielThePainter) macht. – pmg

Antwort

-1

Nach jeder sprintf Länge (Strlen (szTemp)) von szTemp wird um 2 erhöht werden, so dass 40 Bytes von ATR wird in szTemp in hexadezimaler Form geschrieben zu werden

ATR Array keinen Wert hat, zugewiesen, so dass es grundsätzlich Müll Werte

+0

Darf ich Grund für den Downvote wissen? – Pras

Verwandte Themen