gpt4 book ai didi

c - 为什么 void* 在 C 中有效?

转载 作者:行者123 更新时间:2023-11-30 14:47:37 25 4
gpt4 key购买 nike

为什么我们可以将变量声明为“void* x”而不是“void x”?为什么“void* x”有用?

示例:

int main()
{
void* a;
return 0;
}

以上代码编译并成功运行

int main()
{
void a;
return 0;
}

上面的代码出现以下编译错误:

b.c:6:10: error: variable has incomplete type 'void'
void a;
^
1 error generated.

最佳答案

我认为是因为void一般作为函数的返回类型来表示没有返回值。

Void* 实际上非常有用! Void* 用作 malloc() 和 calloc() 等内存函数的返回类型,因为它允许它们操作任何数据类型。此外,void* 可用于创建通用函数。一个经常被引用的例子是: void qsort (void* base, size_t num, size_t size, int (*comparator)(const void*,const void*))

这是一个实现快速排序的通用函数。本例中的比较函数使用 void* 指针来表明它可以比较任何数据类型。

关于c - 为什么 void* 在 C 中有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51073977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com