c语言中void放在函数前面是什么意思
作者:百变鹏仔日期:2023-08-01 22:23:00浏览:9分类:文字大全
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
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
- 上一篇:已经是第一篇了
- 下一篇:已经是最后一篇了
- 搜索