gpt4 book ai didi

c - C 存储中的 void 类型变量

转载 作者:行者123 更新时间:2023-11-30 15:45:21 26 4
gpt4 key购买 nike

C 中什么是 void 类型变量?我有一个粗略的想法,但不确定如何将它们用于以下场景。

服务器/客户端程序

我有一个结构数组,其中包含服务器中的主机名、地址。我想通过套接字将其发送给客户端。我怎样才能实现它?

struct ipinfo{

char hostname[64];
char address[64];
}
struct ipinfo allip[5];

我读到了一些可以作为 void 类型变量复制到特定内存位置的位置,然后他们发送该变量?谁能解释一下这个概念吗?我真的很感激。

最佳答案

在 C 中,void 唯一可以用作变量类型的情况是它是指针。当您不确定要接收的数据类型时,它们非常方便。

void * somePointer;

这可以用于多种用途。

在不知道类型的情况下引用对象。

处理没有类型的普通内存。 Malloc(我相信 C++ 中的 new)返回一个 void 指针,因为此时内存没有类型。

尽管如此,尽量不要使用 void 指针,通常最好远离它们。可能会导致错误和令人头痛的问题。您通常可以找到更好的解决方案。

void 关键字也可以用在函数前面。

void printHello(void)
{
printf("Hello");
}

在此函数中,我们使用 void,因为它不返回任何内容。空函数可以简单地执行我们分配给它们的任何任务,而不返回任何内容。我们也不需要将任何数据传递到函数中,因此我们在参数中指定 void。

注意:如果您正在学习 C++,那么您确实需要牢记有关函数参数的一些内容。

void printHello() // <- This is bad in C, it will take any number of anything practically
{
printf("Hello");
}

如果您不希望为 C 传递任何参数,请始终在参数中放置 void。

void printHello() // <- Good in C++, it won't allow any arguments on a call
{
std::cout << "Hello";
}

但是,您不能使用 void 作为变量类型,如

void a = 0;
void b = 's';
void c = 5.5
// You can't use void to store anything

关于c - C 存储中的 void 类型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19084386/

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