首页 > 解决方案 > 为什么 memccpy 函数使用 int 参数?

问题描述

memccpy定义为:

void *memccpy(void *dest, const void *src, int c, size_t n)

我知道整数c被用作unsigned char按类型转换。

那我觉得

void *memccpy(void *dest, const void *src, unsigned char c, size_t n)

看起来更好。有什么理由memccpy必须使用int参数吗?

标签: c

解决方案


在古代 C 中,没有办法将参数作为unsigned char;传递。所有论点都被提升为至少int. 将参数类型更改为unsigned charnow 会破坏兼容性。(这可能会解决,但没有需求。)


推荐阅读