LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4270|回复: 39

这几种函数有何区别?

[复制链接]
发表于 2004-7-29 09:00:49 | 显示全部楼层 |阅读模式
1: datatype main()
2: main()
3: datatype main(int agrv, char *agrv[])
4: void main()
谢谢!
发表于 2004-7-29 09:09:30 | 显示全部楼层
main函数的返回值应该是int的
因此这四种写法在返回值上没有本质区别
但都不如 int main() 合理
main() 和 main(int agrv, char *agrv[])当然是有参数和没参数的区别喽

请高手补充.
发表于 2004-7-29 19:57:41 | 显示全部楼层
linux系统要求程序在退出时,返回一个整数给系统,所以linux下的main函数声明为int类型。
 楼主| 发表于 2004-7-30 09:49:51 | 显示全部楼层
我来补充几句:
1。 void main()/main(parameter table)在c++中使用。
2.  main()/main(paramerter table)在c中用
3。 main(int agrc,char* agrv[])表示在命令行下:程序名 参数1 参数2 。。。。。。(取决于main(int agrc, char* agrv[]))例如:
cp /linux/aa.txt /linux/
4. linux中的源码中的main都是这样:type main()/main(int agrc, char* agrv[])
5. 所有的的.c文件/编译块/编译单位想在命令行运行, 都必须包括main
6。 所有的main都可以按照需要返回type
情高手补充或纠正!谢谢!
发表于 2004-7-30 10:49:28 | 显示全部楼层
楼上的兄弟请说说你的这些说法到底有什么根据,从什么地方得来的?
 楼主| 发表于 2004-7-30 11:49:59 | 显示全部楼层
1。可以看看c++中的代码:
2。可以看看c中的代码:
3。可以看看busybox中的代码:
4,5,6这是自然的,
发表于 2004-7-30 12:19:13 | 显示全部楼层
呵呵,有以偏概全之嫌
发表于 2004-7-30 12:38:33 | 显示全部楼层
sybaselu确实在以偏概全。
 楼主| 发表于 2004-7-30 12:58:16 | 显示全部楼层
还有一个问题:
1, 如果我在编译块programm1.c中要用到programm1.h中一个函数,那我是将programm1.h中包涵在programm1.c, 如#include <programm.h>中,还是用extern在调用函数和被调用函数前
2. 不知道大家又没有用过busybox, 在其中, 每一个shell命令的代码中都有:int xxx_main(int agrc, char* agrv[]),这里没有主函数int main(int agrc, char* agrv[]), 但是一定在那里让int xxx_main于int main发生关系!
发表于 2004-7-30 13:06:38 | 显示全部楼层
回答1: 两种写法本质上一样

回答2: 具体问题具体分析,不能根据某个程序里如何写就认为应该这样写
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表