无返回的函数()里加void和不加有什么区别

作者&投稿:通疮 (若有异议请与网页底部的电邮联系)
单片机中断函数加void与不加void的区别~

正常的C语言函数是需要有一个返回值的,一般是return语句实现。当在函数名前加个void代表这个函数是个空函数,没有返回值的。程序加与不加要看你程序实现的功能,如果函数不要返回一个数据,供其他地方调用。void可加可不加。只是编译器会警告而已,对实际运行结果无影响。

1、test()表示函数可以任意类型,任意个数的参数,比如test(1),test(1, 2)都是没有问题的。
2、test(void)表示函数不能接受任意参数,test(1)和test(1, 2)都是不能通过错误的。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

有区别的.
在C语言里,标准的C调用都为函数预留有返回值的空间.所以不管你用不用void来修饰函数,它都有一个返回值,不同的是这个返回值有没有意义和意义是什么.当你用void来修饰时,编译系统会识别程序员的无意识的调用其返回值,从而编译不通过.
接下来用一些例子来说明:

main()
{
int i;
i=getnum();
}
void getnum()
{
int t;
t=0;
}
此时,getnum()的返回值空间是无意义的不可预知的数,所以编译系统处理i=getnum()一句为错误,因而不通过

main()
{
int i;
i=getnum();
}
getnum()
{
int t;
t=0;
}
这里getnum()没有void修饰,所以能通过,但是由于对i=getnum()这样取得不可预知数据而没有错误提示,程序员就很难在一大堆程序里找出这个错误来.这样会导致所有对i值有依赖的计算.
main()
{
int i;
int k;
i=getnum(k);
}
int getnum(int k)
{
if(k=0){return 1;}
else return 0;
}

i=getnum()得到了getnum()的返回值.返回值中含有期望的信息.这里得到的信息是对于已经定义而未显式赋值的k,其值到底是0或者非0。
还可以从函数的返回值中得到更加丰富的信息。比如:函数的运行情况,比较结果,生成数或串,计算结果……

所以对于不想利用的返回值,就应该对其显式地以void修饰。这是一种好的编程习惯。关于编程习惯的东西,可以自己找资料学习,关键是自己能花心思培养。



若main函数无返回值,定义main函数的时候可以缺省标识符“void”。
答:缺省时main()默认是int main()void main()是定义无返回值

在主函数main()前面定义一个void类型的函数,我在调用这个函数时它既然没...
答:main是主函数,程序是从这里开始的,没有函数会调用他吧 main的返回值好像是有执行的时候,系统才会用到,来确定程序是否被执行 任何函数都是有返回值的,这个一定要记住 void类型是没有返回值是才用到,但是他也是有返回值的。好像是调用成功返回1,不成功返回0。这个我不是很确定,好像在哪里看的过...

我问下java中void的有关用法,如果说在方法中没有返回值应该可以不用void...
答:方法中如果没有返回值,一定要void,比如public void m(){ ……} 方法中如果有返回值,要看返回值是什么类型来写,如果是string类型,那么public String m(){ ……return "ok"} 依次类推

关于void无返回值的问题
答:你好!!对于这个函数执行的顺序是从上开始到a(5);然后转入 a 的函数,a 的函数类型是 void ;然后直接运行 a 函数内的代码,函数内的代码是循环打印 i 的值;其中 a 函数无返回值,表示 a 函数没有返回值( return ) ;函数 a 运行完后,才返回到主函数继续下面的程序。

函数无返回值类型为什么是void?
答:C语言程序中,若函数无返回值,则应该对函数说明的类型是void。如果函数所体现的计算不需要返回结果,则数据类型可以指定为void类型。注意,这种情况下在主调函数中调用该函数,该函数调用表达式不能被用作子表达式给其他变量赋值。void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向...

Java中,构造函数没有返回值。请问没有返回值和返回值类型为void,有什么...
答:这就是规定,如果你现在自己做一个新语言的编译器,也可以规定构造函数必须加上void,或者一个特殊的返回值。那么为什么构造函数没有返回值呢,主要是为了区分构造函数和其它方法。其实,你可以尝试在你的构造函数前加上void,你会发现编译可以通过,但是编译器把它认为是方法,而不是构造函数,当然也无法...

C语言中一个函数前加了void到底要不要返回值呀!
答:void 用于函数前表示无返回值 如void No_ruturn(void)用于形参表示函数不接受任何参数 而你说的是(void *)这里的void不表示无返回值 而表示该指针可以指向任何类型 列如 void *p1;iny *p2;p1=p2;//可以 但是p2=p1//不可以 这就像男人女人都是人 你可以说男人是人 但不可以说人是男人 一样...

c语言中,有返回值的用int,没有返回值的用void吗?
答:在c语言中,有返回值的就用int,没有返回值就用void。在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。即不加返回值说明的函数为返回为int的函数。如果函数没有返回值,一定要声明为void类型。这既是程序良好可读性的需要,也是编程规范性的要求。另外,加上void类型声明后,...

在main()函数前面加int或void有什麽作用?
答:楼主您好!如果函数名(main代表主函数)前面有数据类型,如int,float,就表示该函数有返回值,需要用return返回一个该类型的值;而如果使用void,则表示无返回值。不懂可以再问哟!

C语言中的“void main()”是什么意思?
答:void main()表示函数无返回值,就是说在程序的结尾处不需要加上return 0。而return是在函数体中,用来返回特定值的。一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名,这个函数称为主函数,主函数是整个程序的入口。