gpt4 book ai didi

c - 函数原型(prototype)声明 c

转载 作者:太空狗 更新时间:2023-10-29 17:22:21 25 4
gpt4 key购买 nike

今天看到了一个函数原型(prototype)(为了完整起见加了几行)

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 实现 中获取的。据我所知,在原型(prototype)中编写 16 没有任何意义。那么为什么会包含在这里呢

这是否只是向程序员表明,无论您传递给函数的指针或数组是什么,它都只会考虑它的前 16 个字节。它在这里实际上意味着什么。这是托管在 github 上的实现链接

最佳答案

在实践中,它会衰减到

void md5_finish(md5_state_t *pms, md5_byte_t *digest);

16 可能是对用户摘要使用的大小的提示,但从技术上讲,该函数将接受参数中的任何大小,除非函数中有代码要检查一定的尺寸。

关于c - 函数原型(prototype)声明 c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11509711/

25 4 0
文章推荐: c - remquo : argument reduction?
文章推荐: c - 数组的数组和多维数组有什么区别?
文章推荐: c - 结构数组 - 删除/添加元素和打印
文章推荐: angular -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com