猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
在C,C ++和C#中,void是什么意思?
希望了解术语“
无效
”的来源以及为什么称为“
无效
” 的基础。这个问题的目的是为没有C经验并且突然正在寻找基于C的代码库的人提供帮助。
呼唤远方
浏览 1468
回答 3
3回答
繁花不似锦
基本上,它的意思是“无”或“无类型”有3种使用void的基本方法:函数参数:int myFunc(void) -函数不执行任何操作。函数返回值:void myFunc(int) -函数不返回任何内容通用数据指针:void* data -“数据”是指向未知类型数据的指针,无法取消引用注意:void函数内的in参数在C ++中是可选的,因此int myFunc()与完全相同int myFunc(void),并且在C#中完全省略了。返回值始终是必需的。
0
0
0
青春有我
我一直认为它是缺席的。这是C语言中与这种用法不匹配的四种情况R f(void)- 缺少功能参数void f(P)-返回值是不存在的void *p-所指对象的类型不存在(void) p- 缺乏价值使用其他C后代将其用于其他用途。该D编程语言使用它的情况下的初始化是不存在的T t = void;- 缺少初始化值
0
0
0
慕雪6442864
有两种使用void的方法:void foo(void);要么void *bar(void*);第一个指示没有参数传递或没有参数返回。第二个告诉编译器没有与数据有效关联的类型,这意味着在将其转换为已知类型之前,您无法使用指向的数据。例如,void*当您有一个接口调用一个其参数无法提前知道的函数时,您会发现使用了很多东西。例如,在Linux内核中,当推迟工作时,您将为函数提供指向要运行的函数的指针和指向要传递给该函数的数据的指针,以设置稍后运行的函数:struct _deferred_work {sruct list_head mylist;.worker_func = bar;.data = somedata;} deferred_work;然后,内核线程遍历了一系列延迟的工作,当到达该节点时,它将有效地执行:bar(somedata);然后在栏中,您将:void bar(void* mydata) { int *data = mydata; /* do something with data */;}
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
C#
typedef入门问题
1 回答
C
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续