所以,我正在用 C 编写一个 ye olde SHA1 算法的实现(我知道它不安全,它是针对 Matasano 问题的),并且对于某些变量来说,它们的长度正好是 32 位是非常重要的。读过unsigned long int
标准的 32 位后,我就使用了它,然后花了 4 个小时试图找出为什么我的哈希值都错了,直到我想看看结果是什么sizeof(unsigned long int)
。剧透,它是64。
现在当然我正在使用uint32_t
,并且将来总是会使用,但是有人(最好是比我有更多自由裁量权和更少轻信的人)请指出我在哪里为现代 C 写下了可变大小的实际标准? 或者告诉我为什么这个问题被误导了,如果是的话?