memccpy定义为:
void *memccpy(void *dest, const void *src, int c, size_t n)
Run Code Online (Sandbox Code Playgroud)
我知道整数c被用作按unsigned char类型转换。
然后我想
void *memccpy(void *dest, const void *src, unsigned char c, size_t n)
Run Code Online (Sandbox Code Playgroud)
看起来好多了。有什么理由memccpy必须使用int参数吗?
在古 C 语言中,没有办法将参数作为unsigned char;传递。所有参数都至少提升为int. 将参数类型更改为unsigned char现在会破坏兼容性。(这可能是可以解决的,但没有这样的需求。)