【发布时间】:2011-04-29 14:34:39
【问题描述】:
假设我有一个函数
void foo(char *)
在内部,它需要将其输入视为一个以 NUL 结尾的字节块(例如,它是字符串上的哈希函数)。我可以在函数中将参数转换为unsigned char*。我也可以将声明更改为
void foo(unsigned char *)
现在,鉴于 char、signed char 和 unsigned char 是 three different types,根据 C 中术语“接口”的任何合理定义,这是否会构成接口更改?
(此问题旨在解决另一个问题提出的discussion。我有我的意见,但在有人投票成为“赢家”之前不会接受答案。)
【问题讨论】:
-
如果您只是针对 C 提出问题,为什么还要用 C++ 标记它?
-
@sbi:如果您实际查看他的链接,它会引用 C++ 标准并提供 C++ 示例代码。 OP 似乎只是假设这在 C 标准中是相同的。
-
将链接更改为指向 C 标准基本原理的引用。
-
我在这里看不到任何真正的答案。一个真正的答案应该引用处理函数指针类型的标准部分。
标签: c interface unsigned-char signedness