2017-05-06 9 views
-6

私はこのCコードを持っています。誰かがこのコードを説明できますか?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]); 
} 

特に、これはどういう意味ですか? szTempの各sprintfの長さ(STRLEN(szTemp))後

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

です。これは、16進数のシーケンスとして 'atr'の内容の文字列表現を作成します。ループを通過するたびに、 'szTemp'に格納されている文字列の最後に2つの新しい文字が追加されます。これは 'len'がどこかで定義されていることを前提としています(あなたが指定したsniipetでは定義されていません)、' atr'はループの前に初期化または割り当てられています。 –

+0

私はすでにコードを更新しています。 –

+0

これは、コードが[Shlemielのアルゴリズム](http://wiki.c2.com/?ShlemielThePainter)を実行していることを意味します。 – pmg

答えて

-1

のでATRからの40のバイトは六角形態

ATRアレイにszTempに書き込ま取得された任意の値を持っていない、2だけ増加されます割り当てられたゴミ値は基本的には

+0

私はdownvoteの理由を知ってもいいですか? – Pras

関連する問題