今日、フォームの関数プロトタイプを見ました (完全を期すために最初の行がいくつか追加されています)
typedef unsigned char md5_byte_t; /* 8-bit byte */
typedef unsigned int md5_word_t; /* 32-bit word */
/* Define the state of the MD5 Algorithm. */
typedef struct md5_state_s {
md5_word_t count[2]; /* message length in bits, lsw first */
md5_word_t abcd[4]; /* digest buffer */
md5_byte_t buf[64]; /* accumulate block */
} md5_state_t;
void md5_finish(md5_state_t *pms, md5_byte_t digest[16]);
これは、L. Peter Deutsch のmd5 実装から取得されました。私が知っていることから16
、プロトタイプに書いても意味がありません。では、なぜここに含まれているのか
関数に渡すポインターまたは配列が何であれ、その最初の16バイトのみが考慮されることをプログラマーに示すだけですか。ここで実際に意味することは何ですか。これは、 githubでホストされている実装へのリンクです。