注册 登录
编程论坛 C++教室

c++语言问题

周1992 发布于 2011-03-18 18:01, 789 次点击
各位高手,问main前面加不加void有什么区别?
16 回复
#2
pangding2011-03-18 19:21
最好加 int,并在函数结束前加上 return 0;

如果你现在是初学者的话,就把这个背下来。理由不要管。
#3
qq10235692232011-03-18 20:28
加不加都可以,看个人习惯了!加了的话,就要加一句return 0;
#4
pangding2011-03-18 23:05
c 区那个也是你问的吧。那别热闹,答的人多。可以参考一下:
https://bbs.bccn.net/viewthread.php?tid=334076&page=1
#5
rjsp2011-03-19 08:07
main前面加不加void有什么区别?
---------
不加,则在C89中默认为 int;在C99中为错误
加,无论在C89还是C99中都是错误。无论在哪一个版本的C/C++中,main 返回类型都必须是int。

别被那些垃圾书和垃圾编译器给害了
#6
盛世皇朝2011-03-19 14:05
在main()前面加什么类型 就是说函数结束的时候要返回的类型  如int main()他要返回的是一个整型的数据 而void main()不返回数据
#7
bccn2502011-03-19 14:32
记住一个就行了 int main  不要问为什么,问了,就相当于,你在问为什么 "钱"字念"qian" 一样的无聊,。

以后在 windows 又不一样了,

为什么不问 class 后面要加 分号。

对 C++ 最不满的就是 class 后面要加分号 ,定义在后面的函数,要向前声明。
这些东西,应该编译器自己处理掉,为什么还要手工加上去。电脑是个自动化的东西,连这个都要自己写。


[ 本帖最后由 bccn250 于 2011-3-19 14:35 编辑 ]
#8
瓦药墙2011-03-19 14:54
恩, c\c++ 标准写法

c:
int main(void)
{
    //...

    return 0;
}

int main(int argc, char *argv[])
{
    //...

    return 0;
}

c++:

int main()
{
    return 0;
}

int main(int argc, char *argv[])
{
    return 0;
}

win32 sdk:

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    //....
    return 0;
}
#9
rjsp2011-03-19 15:11
对 C++ 最不满的就是 class 后面要加分号
------
有一种写法是这样
class foo { int x; int y; } foo( void );

定义在后面的函数,要向前声明
------
没有前置声明的话,连语法都无法确定,比如出现个foo,编译器不知道它是一个typename还是一个function name,还是其他。
而这些信息不知道的话,则无法build,必须所有代码给全,才可以build + link,当然,如果这样的话,也不必须区分 编译和连接 了。
原本,每个工人(编译器)只需要知道自己要干的活儿,所有人干完自己的活儿,交给组长去装配。
而现在,就得每个工人都要知道所有人的活儿,才能干自己的活儿。

#10
流氓通2011-03-19 18:17
void main()  和 int main()
有什么样的区别  为什么g++就不能用呢
#11
pangding2011-03-19 20:44
以下是引用bccn250在2011-3-19 14:32:31的发言:

记住一个就行了 int main  不要问为什么,问了,就相当于,你在问为什么 "钱"字念"qian" 一样的无聊,。

以后在 windows 又不一样了,

为什么不问 class 后面要加 分号。

对 C++ 最不满的就是 class 后面要加分号 ,定义在后面的函数,要向前声明。
这些东西,应该编译器自己处理掉,为什么还要手工加上去。电脑是个自动化的东西,连这个都要自己写。

后面的抱怨确实比较无趣。有些东西不不知道而已,不是规定的不合理。C++ 的語法的严谨性是出了名的。

退一步说,就算是不合理的规定,也是约定俗成的。中文还有好多不合理的地方呢,你是想让語法变变呢,还是自己入乡随俗呢?
#12
zzminzzm2011-03-21 23:35
返回一个类型   void是一个空的类型
#13
魔鬼鱼2011-03-26 20:35
表示主函数的返回值为空
将voidz作为指针的类型时,它表示不确定的类型
#14
紫凤双飞2011-03-26 22:28
不加void 一般默认是int(如VC++),但有些编译器中必须用int main() (如 DEV C++),这个不用在意,加int就可以了
#15
我是菜鸟C2011-03-30 22:43
   对,void表示的是执行完main之后返回的是空类型。
如果是int的话  就得返回一个int类型的数。。
现在不必管这个  背下来就好。
#16
我的最爱梅2011-04-02 13:29
小问题引发的大探讨 c\c++ 标准写法

c:
int main(void)
{
    //...

    return 0;
}

int main(int argc, char *argv[])
{
    //...

    return 0;
}

c++:

int main()
{
    return 0;
}

int main(int argc, char *argv[])
{
    return 0;
}

win32 sdk:

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    //....
    return 0;
}
这个好
#17
我的最爱梅2011-04-02 13:30
c\c++ 标准写法

c:
int main(void)
{
    //...

    return 0;
}

int main(int argc, char *argv[])
{
    //...

    return 0;
}

c++:

int main()
{
    return 0;
}

int main(int argc, char *argv[])
{
    return 0;
}

win32 sdk:

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    //....
    return 0;
这个好
1