【发布时间】:2017-05-27 20:51:26
【问题描述】:
这两个测试在我编译它们时都没有给我错误,但它们返回不同类型的指针。
void *testone(void *x)
{
return (x);
}
void *testtwo(void *x)
{
char *y;
return (y);
}
这尤其令人困惑,因为我正在尝试重新创建 memcpy 函数,但我不知道我应该返回一个 void 指针还是一个无符号字符指针。
【问题讨论】:
-
testtwo是不安全的,因为它返回一个未初始化的值,而不是因为与类型有关。 -
您可以通过使用
void *testtwo(void)(以避免“未使用参数”警告)然后初始化y来避免编译器的一些小问题。但是,这些都是与您的问题无关的挑剔,这很清楚。 -
Void * 泛型指针,在这种情况下返回类型需要是任何类型的指针。
标签: c