Linux平台下编译C程序,提示main函数返回类型不是int类型的

难道main函数的返回值类型只能是int型的吗?
#include <stdio.h>
#include <sys/types.h>
#include <sys/msg.h>
#include <sys/ipc.h>
#define MSGKEY 75
struct msgform
{
long mtype;
char mtext[1030];
}msg;
int msgqid,i;
void CLIENT()
{ int i;
msgqid=msgget(MSGKEY,0777);
for (i=10;i>=1;i--)
{
msg.mtype=i;
printf("(client)sent \n");
msgsnd(msgqid,&msg,1024,0); /*发送消息msg入msgid消息队列*/
}
exit(0);
}
void SERVER()
{
msgqid=msgget(MSGKEY,0777|IPC_CREAT); /*由关键字获得消息队列*/
do
{
msgrcv(msgqid,&msg,1030,0,0); /*从msgid消息队列接收消息msg*/
printf("(server)received \n");
}while(msg.mtype!=1); /*消息类型为1时,释放队列*/
msgctl(msgqid,IPC_RMID,0);
exit(0);
}
void main()
{
while((i=fork())==-1);
if(!i) SERVER();
while((i=fork())==-1);
if(!i) CLIENT();
wait(0);
wait(0);
}
这是进程间通信的实验,编译时警告main的返回值类型不是int,我把类型改成int之后最后加句return 0;就没有错误了。是不是main函数只能是int类型啊?return语句要吗?
还有隐式声明与内建函数‘exit'不兼容,是不是加头文件<stdlib.h>就行了?我这不是Linux系统,烦哪位高人运行一下指点一番,不胜感激……
是用Linux在实验室做的实验,现在我没有Linux系统。 还有exit与隐式声明怎么办。 可不可以给咱在Linux平台下运行一下?给个确定的答案,谢啦。 各位大侠不要误解我的意思,我是想修改的更好,没有一点错误的。。

你看看你的 main() 定义,他可是 void 属性。
你所有的函数都是 void 属性,那么你就只能返回 void 属性的值。
好吧,我知道 void 其实是没有值的……
-------------
你没 Linux 在这瞎折腾什么?装个 Linux 很难?

jiangtao@Gentoo ~/asdasdasd $ gcc a.c
a.c: 在函数‘CLIENT’中:
a.c:21: 警告:隐式声明与内建函数‘exit’不兼容
a.c: 在函数‘SERVER’中:
a.c:32: 警告:隐式声明与内建函数‘exit’不兼容
jiangtao@Gentoo ~/asdasdasd $

a.c 就是你的程序文件

jiangtao@Gentoo ~/asdasdasd $ ./a.out
(client)sent
(client)sent
(client)sent
(client)sent
(client)sent
(client)sent
(client)sent
(client)sent
(server)received
(server)received
(server)received
(server)received
(server)received
(server)received
(server)received
(server)received
(client)sent
(server)received
(client)sent
(server)received
jiangtao@Gentoo ~/asdasdasd $

-----------------
你现在没 Linux 没 GCC 根本没办法继续。至少你写程序,努力写一个连 waring 都没有的源代码。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-16
按照最新的标准,main返回值只能是int,在函数最后加一个 return 0;就行了
第2个回答  2010-04-17
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include 其他需要的头文件

int main(int argc, char **argv)
{
......

return 0;
}

一般这样就没有什么问题了。
第3个回答  2019-11-11
这都是学的谭浩强的书搞的~~~
建议看看标准C
再看看别人怎么说的。
第4个回答  2010-04-16
这都是学的谭浩强的书搞的~~~
建议看看标准C
相似回答