【发布时间】:2012-07-15 14:52:14
【问题描述】:
今天看到了一个表单的函数原型(为了完整,添加了几行开头)
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上托管的实现的链接
【问题讨论】:
标签: c function-prototypes