鹏仔先生-趣站-一个有趣的网站!
鹏仔先生

鹏仔先生

当前位置:网站首页 > 文字大全 > 正文

c语言中void放在函数前面是什么意思

作者:百变鹏仔日期:2023-08-01 22:23:00浏览:9分类:文字大全

c语言中void放在函数前面是什么意思

void有两种意思。第一种意思是无返回值,也就是说,void放在函数前面,那么,函数结束的时候,不需要return什么值(其实也可以写return;);

第二种意思是任意返回值。这个意思,在某些应用上很有用。一般用来修饰指针。即void指针。

void的使用

空kōng

常用词组

1.

空瘪 kōngbiě

[empty] 物体因中空而表面凹下去

空瘪的布袋

2.

空肠

kōngcháng

[jejunum] 十二指肠以后的2/5段小肠,与回肠相连处几乎难以分辨出,

然而空肠较粗、壁较厚并具有较多血管及粘膜环状襞的少量集合淋巴结

3.

空敞 kōngchǎng

[open and spacious]

空阔宽敞

茶棚搭在空敞的草地上

4.

空城计 kōngchéngjì

[empty-city stratagem]

典出《三国志·蜀书·诸葛亮传》.在街亭失守后,司马懿进军诸葛亮大帐所在地西城,诸葛亮兵力单薄,用疑兵之计大开城门,派人洒扫街道,司马懿疑有伏兵,引军后退.现比喻掩盖自己力量的不足,以使对方迷惑或后退,有时也有贬义

5.

空档 kōngdàng

[neutral gear]

机器主动部分与从动部分之间的中间位置;脱开位置;解脱或分离的位置(如传动装置与原动力分离的位置)

6.

空荡荡

kōngdàngdàng

[spacious and deserted; void] 形容冷冷清清,空无所有的情景,也指心里没着落的感觉

7.

空洞 kōngdòng

(1)

[cavity]∶物体内的空隙

岩石中的空洞

(2)

[empty;hollow]∶不着边际,缺乏实质内容

空洞的论据

8.

空洞洞

kōngdòngdòng

[deserted;empty]

形容房屋、场地等很空(没有人或没有东西)

店堂里空洞洞没有一个顾客

村子里空洞洞的,人都下地干活去了

9.

空洞无物

kōngdòng-wúwù

(1)

[emptiness]∶空泛之言,华而不实之物

揭露用来替代古代实在性观念的现代主义的空洞无物

(2)

[speciosity]∶华而不实的外观或华而不实的东西

10.

空对空 kōngduìkōng

[empty]

比喻空洞不切实际

在讨论的过程中,必须把理论与实际紧密地联系起来,决不能搞空对空

11.

空乏 kōngfá

[destitute]

缺少财物,指贫穷

12.

空泛 kōngfàn

[vague and general;empty;not specific]

没有具体内容的泛泛之论

13.

空房 kōngfáng

[empty house;vacancy] 腾出的房

古旧空房

14.

空房间 kōngfángjiān

[vacant] 没有居住者的房间

可即刻接待新房客的空房间

15.

空腹

kōngfù

[empty stomach] 没吃东西,空着肚子

此药需空腹服用

16.

空腹高心

kōngfù-gāoxīn

[poor in talent but very ambitious]

人无一技之长,心志却极高.比喻无能之辈的空想

17.

空谷足音 kōnggǔ-zúyīn

[the sound of footsteps

in a deserted valley-a news or a statement which one does not hear often,or a

thing that was seldom to found] 空旷的山谷里听到的人的脚步声.比喻十分难得,极为可贵的

这就是十一位举人中的空谷足音.——《醒世姻缘》

18.

空喊 kōnghǎn

[idly clamor;prate about]

只是在口头上叫嚷,不实地去做.也说“空唤”、“空嚷”

19.

空话 kōnghuà

(1)

[bunk;bunkum;empty

talk]∶空洞不切实际的话

(2)

[gossip;malicious remarks]∶闲话;坏话

四爷,连

东冲都有人讲你老人家的空话.—— 张天翼《万仞约》

20.

空话连篇 kōnghuà-liánpiān

[windy]

说话冗长、空洞、毫无实质内容

回到家里伺候他喝啤酒和吸烟,听他空话连篇的祈祷

21.

空怀

kōnghuái

[nonpregnant;barren] 适龄母畜在交配或人工授精之后没有怀孕

22.

空幻

kōnghuàn

[visionary;illusory] 虚无的或有幻境色彩的

23.

空际 kōngjì

[in the sky]

天空

空际满是灰色的尘埃

24.

空寂 kōngjì

(1)

[open and

quiet]∶空旷寂静

空寂的山野

(2)

[Buddhism;dharma]∶佛门;佛法

25.

空架子

kōngjiàzi

[mere skeleton;bar outline] 指徒具形式而没有具体内容的东西

他们那个公司只是个空架子

26.

空间 kōngjiān

[space] 与时间相对的一种物质存在形式,表现为长度、宽度、高度.也指数字空间、物理空间与宇宙空间

27.

空间探索 kōngjiān tànsuǒ

[space probe] 到高空或者宇宙空间去进行科学的观察和测量

28.

空间站

kōngjiānzhàn

(1)

[space station]

(2)

一种围绕地球航行的载人航天器,设置有完善的通信、计算等设备,能够进行天文、生物和空间加工等方面的科学技术研究

(3)

设置在月球、行星或宇宙飞船等上面的空间通信设施

29.

空降 kōngjiàng

[air-borne]

利用降落伞,从飞机上下跳着陆

30.

空军 kōngjūn

[air force]

武装力量军兵种之一,一般与陆海军平行,有的国家隶属于陆海军,主要任务是控制制空权,支援地面海面部队作战,破坏敌人交通线及其他战略纵深目标

31.

空空 kōngkōng

(1)

[empty;nothing]∶空无所有

空空的食品间

(2)

[for

nothing;in vain]∶白白地;徒然

我求她立地回音,她却是不肯遵守.空空又等了一周.——郭沫若《瓶》

32.

空空洞洞

kōngkōng-dòngdòng

[empty;hollow;nothing in there;nobody in there]

空虚;空无所有

一间空空洞洞的房屋,又脏又冷

33.

空空如也 kōngkōngrúyě

[empty;nothing left]

空无所有

爱表现自己的人,其实肚子里往往空空如也

34.

空口 kōngkǒu

(1)

[eat dishes without

rice or wine]∶不吃饭也不喝酒而光吃菜肴

(2)

[eat rice or drink wine with nothing to go

with it]∶不吃菜而单吃饭或喝酒

35.

空口 kōngkǒu

[prattle]

光用嘴说一说

空口无凭,立据为证

36.

空口无凭 kōngkǒu-wúpíng

[verbal statement cannot

be depended] 只凭嘴说却拿不出真凭实据

空口无凭,立字为证

37.

空旷

kōngkuàng

[open;spacious] 视野开阔,无任何阻挡物

38.

空阔

kōngkuò

[open;spacious] 广阔而没有阻碍视线的东西

平野空阔

39.

空廓

kōngkuò

[spacious;open] 宽阔平整

40.

空寥 kōngliáo

[deserted and quiet]

空旷;寂寥

冬夜的街道上空寥无人

41.

空灵 kōnglíng

[be flexible and unpredicable]

灵活而无法捉摸

这是一种空灵的感觉

42.

空论 kōnglùn

[empty talk]

空洞不切实际的言论

切不可只发空论

43.

空落 kōngluò

[lonely;empty and desolate]

空旷冷落

父亲上夜班去了,家里空落无人

44.

空门 kōngmén

[Buddhism]

佛教教义认为世界一切都是空的,因指佛教

莫向空门悲物理,吾世从来多沧桑

45.

空濛 kōngméng

[hazy;misty]

细雨迷茫的样子

空濛辨渔艇.——杜甫《渼陂西南台》

山色空濛

46.

空名 kōngmíng

(1)

[empty

fame]∶虚名

不务空名

(2)

[dummy]∶和实际情况不相符合的名义

他挂了个副职的空名,一点主也做不了

47.

空难 kōngnàn

[air disaster]

指飞机等在飞行中发生故障、遭遇自然灾害或其他意外事故所造成的灾难

266号民航客机空难善后工作基本结束

48.

空气

kōngqì

(1)

[air]∶地球上的大气,主要由氮气和氧气组成

(2)

[atmosphere]∶一定环境中人感觉到的精神表现或特征

北京大学的学习空气很浓

49.

空气污染 kōngqì

wūrǎn

[air pollution]

室外大气中大量存在诸如尘埃、烟雾、煤气、迷雾、气味、烟气或蒸汽等一种或多种沾污物,其特性及持续时间足以损害人类的健康或动植物的生活

50.

空气压缩机 kōngqì yāsuōjī

[air compressor]

一种利用空气压力推动机械操作的动力机

________________________________________________________________________________

kòng

常用词组

1.

空白 kòngbái

[blank space]

空着的地方;没有填满的部分——用于纸张或其他通常可以写字的东西

给我一张空白纸来算算数

空白支票

2.

空白点

kòngbáidiǎn

[blank spot;blank] 没有达到的方面或部分

3.

空场,空场儿

kòngchǎng,kòngchǎngr

[open space] 没有利用的场地;空地

这片空场后面是一片小树林

4.

空当子,空当儿 kòngdāngzi,kǒngdāngr

(1)

[break;gap]

[口]∶空隙

趁这空当子,你去了解一下

(2)

[room]∶未占满处

书架摆满了书,没有空当子

5.

空地

kòngdì

[open ground (space)]

可以使用的、未被占用的地

咱们把砖卸在那边空地上吧

居民稀疏分散的有着开阔空地的地方

6.

空额

kòng’é

[vacancy] 空着的名额

空额已经补上

7.

空缺 kòngquē

(1)

[gap]∶欠缺部分

男人们从军去了,妇女填补了他们留下的空缺

(2)

[vacancy]∶空出来的职位、名额

填补空缺

8.

空隙 kòngxì

(1)

[gap]∶中间空着的地方;尚未占用的时间

行间有一定的空隙

(2)

[rift]∶空旷间隙

有时通过茂密叶子的空隙隐约闪现

(3)

[interval]∶相似的情况或状态再现的时间间隔

战士们利用战斗空隙加固工事

9.

空暇 kòngxiá

[free;

spare time; leisure] 空闲;闲暇

10.

空心,空心儿 kòngxīn,kōngxīnr

[fasting; on an

empty stomach] 肚子空着,没有吃东西

这剂药空心吃

空心酒(没有吃东西先喝下去的酒)

11.

空余

kòngyú

(1)

[unoccupied]∶空着的;未被占用的

空余房屋

空余病床

(2)

[spare

time]∶空闲;闲工夫

没有空余跟你开玩笑

12.

空子 kòngzi

(1)

[gap;opening]∶尚未占用的地方

那孩子找了个空子往里钻

(2)

[spare

time]∶尚未占用的时间

抽空子来一趟

(3)

[chance;loop-hole]∶可乘之机;漏洞

他专门找空子说风凉话

(4)

[debt]∶债务

不瞒寄娘说:你女婿自从弄了这个官到手,就背了一身的空子.——《官场现形记》

(5)

[kongzi]∶旧时跑江湖的人称不懂江湖事理的人为“空子”

__________________________________________________________________________________

kǒng

古同“孔”,洞.

下面给出void关键字的使用规则:

规则一

如果函数没有返回值,那么应声明为void类型

在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void类型。例如:

add ( int a, int b )

{

return a + b;

}

int main(int argc, char* argv[])

{

printf ( "2 + 3 = %d", add ( 2, 3) );

}

程序运行的结果为输出:

2 + 3 = 5

这说明不加返回值说明的函数的确为int函数。

林锐博士《高质量C/C++编程》中提到:“C++语言有很严格的类型安全检查,不允许上述情况(指函数不加类型声明)发生”。可是编译器并不一定这么认定,譬如在Visual C++6.0中上述add函数的编译无错也无警告且运行正确,所以不能寄希望于编译器会做严格的类型检查。

因此,为了避免混乱,在编写C/C++程序时,对于任何函数都必须一个不漏地指定其类型。如果函数没有返回值,一定要声明为void类型。这既是程序良好可读性的需要,也是编程规范性的要求。另外,加上void类型声明后,也可以发挥代码的“自注释”作用。代码的“自注释”即代码能自己注释自己。

规则二

如果函数无参数,那么应声明其参数为void。

在C++语言中声明一个这样的函数:

int function(void)

{

return 1;

}

则进行下面的调用是不合法的:

function(2);

因为在C++中,函数参数为void的意思是这个函数不接受任何参数。

在Turbo C 2.0中编译:

#include "stdio.h"

fun()

{

return 1;

}

main()

{

printf("%d",fun(2));

getchar();

}

编译正确且输出1,这说明,在C语言中,可以给无参数的函数传送任意类型的参数,但是在C++编译器中编译同样的代码则会出错。在C++中,不能向无参数的函数传送任何参数,出错提示“'fun' : function does not take 1 parameters”。

所以,无论在C还是C++中,若函数不接受任何参数,一定要指明参数为void。

规则三

小心使用void指针类型

按照ANSI(American National Standards Institute)标准,不能对void指针进行算法操作,即下列操作都是不合法的:

void * pvoid;

pvoid++; //ANSI:错误

pvoid += 1; //ANSI:错误

//ANSI标准之所以这样认定,是因为它坚持:进行算法操作的指针必须是确定知道其指向数据类型大小的。

//例如:

int *pint;

pint++; //ANSI:正确

pint++的结果是使其增大sizeof(int)。( 在VC6.0上测试是sizeof(int)的倍数)

但是大名鼎鼎的GNU(GNU's Not Unix的缩写)则不这么认定,它指定void *的算法操作与char *一致。

因此下列语句在GNU编译器中皆正确:

pvoid++; //GNU:正确

pvoid += 1; //GNU:正确

pvoid++的执行结果是其增大了1。( 在VC6.0上测试是sizeof(int)的倍数)

在实际的程序设计中,为迎合ANSI标准,并提高程序的可移植性,我们可以这样编写实现同样功能的代码:

void * pvoid;

(char *)pvoid++; //ANSI:正确;GNU:正确

(char *)pvoid += 1; //ANSI:错误;GNU:正确

GNU和ANSI还有一些区别,总体而言,GNU较ANSI更“开放”,提供了对更多语法的支持。但是我们在真实设计时,还是应该尽可能地迎合ANSI标准。

规则四

如果函数的参数可以是任意类型指针,那么应声明其参数为void *

典型的如内存操作函数memcpy和memset的函数原型分别为:

void * memcpy(void *dest, const void *src, size_tlen);

void * memset ( void * buffer, int c, size_t num );

这样,任何类型的指针都可以传入memcpy和memset中,这也真实地体现了内存操作函数的意义,因为它操作的对象仅仅是一片内存,而不论这片内存是什么类型。如果memcpy和memset的参数类型不是void *,而是char *,那才叫真的奇怪了!这样的memcpy和memset明显不是一个“纯粹的,脱离低级趣味的”函数!

下面的代码执行正确:

//示例:memset接受任意类型指针

int intarray[100];

memset ( intarray, 0, 100*sizeof(int) ); //将intarray清0

//示例:memcpy接受任意类型指针

int intarray1[100], intarray2[100];

memcpy ( intarray1, intarray2, 100*sizeof(int) ); //将intarray2拷贝给intarray1

有趣的是,memcpy和memset函数返回的也是void *类型,标准库函数的编写者是多么地富有学问啊!

规则五

void不能代表一个真实的变量

下面代码都企图让void代表一个真实的变量,因此都是错误的代码:

void a; //错误

function(void a); //错误

void体现了一种抽象,这个世界上的变量都是“有类型”。

void的出现只是为了一种抽象的需要,如果你正确地理解了面向对象中“抽象基类”的概念,也很容易理解void数据类型。正如不能给抽象基类定义一个实例,我们也不能定义一个void(让我们类比的称void为“抽象数据类型”)变量。

总结

小小的void蕴藏着很丰富的设计哲学,作为一名程序设计人员,对问题进行深一个层次的思考必然使我们受益匪浅。

不论什么类型的指针(void*, char*, int*, float*...)在Debug模式编译时,默认初始值都是0xCCCCCCCC(是由编译器决定的,主要目的是为了添加调试的辅助代码用于及时发现错误),在Release模式编译,则是不是确定的值。

#include

#include

//#include

using namespace std;

void main()

{

void *p1;

int a = 10;

int *p2 = &a;

cout

鹏仔 微信 15129739599

百科狗 baikegou.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

  • 上一篇:已经是第一篇了
  • 下一篇:已经是最后一篇了
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)