3 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
基本上,它的意思是“無”或“無類型”
有3種使用void的基本方法:
函數(shù)參數(shù):
int myFunc(void)
-函數(shù)不執(zhí)行任何操作。函數(shù)返回值:
void myFunc(int)
-函數(shù)不返回任何內(nèi)容通用數(shù)據(jù)指針:
void* data
-“數(shù)據(jù)”是指向未知類型數(shù)據(jù)的指針,無法取消引用
注意:void
函數(shù)內(nèi)的in參數(shù)在C ++中是可選的,因此int myFunc()
與完全相同int myFunc(void)
,并且在C#中完全省略了。返回值始終是必需的。

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
我一直認(rèn)為它是缺席的。這是C語言中與這種用法不匹配的四種情況
R f(void)
- 缺少功能參數(shù)void f(P)
-返回值是不存在的void *p
-所指對象的類型不存在(void) p
- 缺乏價(jià)值使用
其他C后代將其用于其他用途。該D
編程語言使用它的情況下的初始化是不存在的
T t = void;
- 缺少初始化值

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
有兩種使用void的方法:
void foo(void);
要么
void *bar(void*);
第一個(gè)指示沒有參數(shù)傳遞或沒有參數(shù)返回。
第二個(gè)告訴編譯器沒有與數(shù)據(jù)有效關(guān)聯(lián)的類型,這意味著在將其轉(zhuǎn)換為已知類型之前,您無法使用指向的數(shù)據(jù)。
例如,void*當(dāng)您有一個(gè)接口調(diào)用一個(gè)其參數(shù)無法提前知道的函數(shù)時(shí),您會發(fā)現(xiàn)使用了很多東西。
例如,在Linux內(nèi)核中,當(dāng)推遲工作時(shí),您將為函數(shù)提供指向要運(yùn)行的函數(shù)的指針和指向要傳遞給該函數(shù)的數(shù)據(jù)的指針,以設(shè)置稍后運(yùn)行的函數(shù):
struct _deferred_work {
sruct list_head mylist;
.worker_func = bar;
.data = somedata;
} deferred_work;
然后,內(nèi)核線程遍歷了一系列延遲的工作,當(dāng)?shù)竭_(dá)該節(jié)點(diǎn)時(shí),它將有效地執(zhí)行:
bar(somedata);
然后在欄中,您將:
void bar(void* mydata) {
int *data = mydata;
/* do something with data */;
}
- 3 回答
- 0 關(guān)注
- 1525 瀏覽
添加回答
舉報(bào)