extern void malloc(unsigned int); 为什么报错,但是extern void malloc();这样就可以编译通过,原型中malloc的参数就是unsigned int 的类型呀
malloc()的参数并不是unsigned int而是size_t。size_t和unsigned int并不是一样的,size_t可能是 unsigned int, unsigned char, unsigned long 等,compiler会根据实参选择用哪种unsigned类型。参考这两个stackoverflow的回答:Difference between size_t and unsigned int?unsigned int vs. size_t
malloc()
的参数并不是unsigned int
而是size_t
。size_t
和unsigned int
并不是一样的,size_t
可能是unsigned int, unsigned char, unsigned long
等,compiler会根据实参选择用哪种unsigned
类型。参考这两个stackoverflow的回答:
Difference between size_t and unsigned int?
unsigned int vs. size_t