函数的类型是空指针,有什么作用?void *initiate(...)这样的函数void函数直接用就行了啊,写个void initiate(...)就行了吧为什么要写成void *initiate(..)呢?有什么区别吗?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/27 13:50:37

函数的类型是空指针,有什么作用?void *initiate(...)这样的函数
void函数直接用就行了啊,写个void initiate(...)就行了吧
为什么要写成void *initiate(..)呢?有什么区别吗?

其本质在于void *(无类型指针)可以包容任何类型的指针,也就是可以把任何类型指针赋值给void ×,但反过来将void ×赋值给某一类型指针时则必须强制类型转换.
举例说明:
我们知道C语言中函数返回值得类型必须确定,也就是一个函数只能返回其固定类型的值,那么如果需要根据不同输入值返回不同类型的结果怎么办?这样就可以:
定义一个结构体,两个字段,data为数据,type为类型
typedef struct _Data
{
void *data; // 数据字段,指向具体创建的控件的数据
TYPE type; // 类型(只读属性,开发人员请勿直接修改)
}Data;
那么函数就可以这样写:
Data getData(TYPE type){
Data data;
if(type == "数字"){
data.type = "数字";
data.data = maollc一段内存,里面放具体数字
}else if(type == "字符串"){
data.type = "字符串"
data.data = maollc一段内存,里面放具体字符串
}
return data;
}
这样用时就很方便了,
Data myData = getData("数字");
printf("%d",*((int *)myData.data));
Data myData = getData("字符串");
printf("%s",(char *)myData.data);
不仅统一了接口(都调用getData()函数),返回值也可以随便作为参数传递,只有要用到具体数据的时候再将它取出来.
不仅可以实现多态,还可以实现继承...

函数的类型是空指针,有什么作用?void *initiate(...)这样的函数void函数直接用就行了啊,写个void initiate(...)就行了吧为什么要写成void *initiate(..)呢?有什么区别吗? 在C语言中函数类型的指针有什么作用 空指针NULL的作用? VOID CREATELIST ( LINKLIST * &a)指针类型的引用如何理解 指向函数的指针有什么具体的用处吗,他返回的类型还是前面所定义的类型,所以可以不指向函数的指针啊 急.请问一下,指向函数的指针有什么特殊的作用吗?为什么要有指向函数的指针呢? 指针有什么作用 C语言中void main和int main有什么区别,是不是在int main里面不能出现非int类型的的东西阿,为什么有点需要用void 有的需要int main啊如果程序中有一个自定义函数是void aaa(),那主调函数还可以写成voi 指向void类型的指针可以存放指向任何类型的指针,但不能引用其自身是什么意思 C语言中指向NULL的指针和野指针有什么区别.NULL是空的意思.这两个指针不一样了吗. 什么是基本类型,构造类型,指针类型和空类型?它们分别有何区别? 为什么建立一个头结点的时候要使头结点的指针域为空如:h=(LNode *)malloc(sizeof(LNode)); h->next=NULL还有在插入函数中void insert(lnode *p,elemtype x)中的 lnode *p有什么用 ,elemtype可以换成int嘛,为什么 Void Main Void我知道是空类型,为什么有的要写Void有的却不用?到底是怎么回事? 北指针有什么作用 指针有什么好处?好吧,是c的指针 任何类型指针指向的变量的类型相同才能进行比较,为什么任何类型的指针都可以和NULL进行比较?#define NULL (void *) 0还有就是函数指针如何使用啊?#includeint fun(int a){printf(%d ,a*a);return 0;}int main( 函数指针与指针函数有什么区别? C语言的指针有什么实际作用?