2764315761 发表于 2014-8-4 13:12:54

这两个程序有什么区别

这两个程序有什么不一样?void到底有什么用?
#include<stdio.h>
main()
{
   printf("hello word");
}


#include<stdio.h>
void main()
{
   printf("hello word");
}


流行语 发表于 2014-8-4 13:12:55

在C中如果函数没有明确返回值时,默认返回整形。#include <stdio.h>

demo()
{
        printf("hello word");
}

/*void demo()
{
        printf("hello word");
}*/

void main()
{
        printf("%d",demo());
}
输出的结果是hello word10,10表示的是成功输出字符数。如果你在demo()函数前加上void,这样明确说明返回值是void。

xubin2004198 发表于 2014-8-4 14:07:42

没区别吧,一个是返回值为空,一个是系统默认的返回值为空

往事成枫 发表于 2014-8-4 14:07:49

void为空的返回类型,就是函数结束时不返回任何东西。像int就是在结束时返回整型,double返回双精度浮点类型一样。如果函数里没有返回类型应该不叫做函数吧。所以第一个并不是函数,第二个才是函数。

oggplay 发表于 2014-8-4 18:48:09

这么说吧,第一个是大师偷懒的写法,第二个就是“砖家”的写法了。:shutup:

2764315761 发表于 2014-8-4 19:42:25

流行语 发表于 2014-8-4 18:05
在C中如果函数没有明确返回值时,默认返回整形。
输出的结果是hello word10,10表示的是成功输出字符数。如 ...

我是新手,不怎么能听懂,那你说如果我写程序的时候加上void好呢,还是不加好呢

2764315761 发表于 2014-8-4 19:43:21

oggplay 发表于 2014-8-4 18:48
这么说吧,第一个是大师偷懒的写法,第二个就是“砖家”的写法了。

谢谢你的解答,对于我这样的新手来说,还是可以接受的{:7_168:}

牡丹花下死做鬼 发表于 2014-8-5 18:41:16

cC标准问题
当troub c还盛行的时候一般就是你的第一个程序
然而现在最新的C11标准就不行了
我现在一般就简单点
#include<stdio.h>
#include<windows.h>

int main()
{
   system("pause");
   return 0;
}

计机羊咩咩 发表于 2014-8-5 21:24:38

第一个函数通俗来讲还是正确的编译器默认类型为int参数为void   但是第二个就是错的了main函数规定必须有返回值所以不可以用void

2764315761 发表于 2014-8-5 21:37:25

计机羊咩咩 发表于 2014-8-5 21:24
第一个函数通俗来讲还是正确的编译器默认类型为int参数为void   但是第二个就是错的了main函数规定必 ...

可是小甲鱼就是这样写的呀
#include<stdio.h>
void main()
{
   printf("世界你好!");
}{:7_173:}

计机羊咩咩 发表于 2014-8-5 21:39:02

2764315761 发表于 2014-8-5 21:37
可是小甲鱼就是这样写的呀
#include
void main()


在不同的标准下有不同的结果   在C99下void main()这样就是错的

沉默默 发表于 2014-8-5 23:17:02

# include <stdio.h>

int main(void)
{
    return 0;
}

最好这样写啰

twilight1223 发表于 2014-9-4 09:36:16

通常函数分为两类:没有返回值的函数和有返回值的函数
没有返回值的函数用void表示,有返回值的函数(在函数体内有return返回值)要规定其返回值类型,比如int,有的编译器在没有规定返回值类型时默认返回int型。

小败类 发表于 2014-9-15 15:57:17

规则不同而已
页: [1]
查看完整版本: 这两个程序有什么区别