关于C语言中的形参列表空着与加void的区别

关于C语言中的形参列表空着与加void的区别

来一段代码大家看看,不,两段吧!

int func()
{
        printf(“hello world\n”);
}
int func(void)
{
        printf(“hello world\n”);
}


请问这两段代码一不一样呀?

不一样.......

再仔细看看,嗯嗯,就是不一样,因为一个有void ,另一个没有嘛,还有什么本质区别没有,似乎是没有了,但是,将这代码加上以下的主函数,其本质区别就显而易见了。

int main()
{
        int a;
        func(a);
}

乍一看,这代码肯定是错的呀,编译器大神肯定是不允许这样烂的代码通过编译的,但是,当为第一段代码时,竟然可以通过了,这是为什么呢?

大家都知道,C语言是一个风格随意,语法不是很严格一门语言,这方便了许多初学者可以很轻松的入门,但是,并非随意就好,一旦养成了随意的习惯,就不难发现,很多问题就出现在自己的随意之上,上面的代码严格的来写,如下:

void func(void)
{
        printf(“hello world\n”);
}
int main(int argc,char argv[])
{
       func();
       return 0;
}

是不是看起来很麻烦呀,因为很多的参数在我们日常的编程之中用不到,比如:func(void)中的void我们就没有必要要,因为空着其他人看着就知道这个函数在调用的时候不返回任何参数,也不需要任何参数,所以加void是多余的,但是,在计算机看来,空着!=void,函数不需要参数,并不代表就不可以传入参数,只不过传入的参数用不到而已,void就明确表示不要任何参数,那你传入参数的话,就是错的,就比如你要给两个人送同样一个东西,这两个人都用不到这个东西,其中一个人说了,不要这东西,而另一个把你的东西收下了,直接扔入垃圾桶一样.main函数里的int argc,int argv[]是啥东西,大家可以戳这里,http://blog.csdn.net/it_dream_er/article/details/45365393

我在这里就不赘述了,OK,关于main函数最后的return 0 ;我个人认为没有必要加,因为按照C语言的机制,如果在一个函数里面没有明确的return,会自动返回,而且,C语言是以main函数开始,main函数结束,所以其的返回值是返回给操作系统的,我们没必要要,但是在一般的函数中,还是必须要的,因为返回的值是有用的,否则就返回值为空了.

转载于:https://www.cnblogs.com/csdndreamer/p/5490649.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值