void main()的疑问

yu_xiang_yu 2011-09-21 05:26:18
本人不是计算机专业的,不过用C++编过一些关于自己专业的小程序。而且都是用Void main(),也没出现什么问题。不过今天看到一个贴子说。使用void main(),说明他没有看过C/C++标准中关于main函数的说明。这是什么意思?
求真理!!推荐什么书看看!!
...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
stendson 2011-09-21
  • 打赏
  • 举报
回复
标准库必须要返回值 c语言不需要
平常心006 2011-09-21
  • 打赏
  • 举报
回复
起始main函数的原型是:int main(int argc, char** argv, char** envp);
建议看下这篇文章:http://www.cppblog.com/sleepwom/archive/2009/10/03/97808.aspx
simimasaiya 2011-09-21
  • 打赏
  • 举报
回复
看看命令行相关的内容就能理解了
programer.M 2011-09-21
  • 打赏
  • 举报
回复
很多程序都是带参数运行的,比如WINDOWS命令行下的很多实用程序。参数增加了程序的灵活性。
你可以在“开始”->“运行”中输入cmd进入命令行。
比如一个叫做del的命令,(删除文件),其实就是del.exe,它带参数的,完整的命令格式可以是
del readme.txt
这个命令将删除当前路径下的readme.txt文件(如果有的话);
此时,运行的程序就是del.exe,而readme.txt就是它的参数,
假设del程序的main函数原型为 int main(int argc, char* argv[]),那么
argc = 1,(1个参数)
argv[0] = “readme.txt”(接收的字符串);
假设一个程序的main函数不带任何参数,那么很显然,它仍可以运行,只是,不接收参数罢啦

void main(int argc, char* argv[ ])
假设程序编译成为 cp.exe
然后在命令行中输入
c:\>cp.exe doc1.txt doc2.txt
这行中有三个字符串分别为 cp.exe doc1.txt doc2.txt
则argc为3,即argc是命令行中参数的个数。
char *argv[]为一个指像字符串的数组。
argv[0]="cp.exe"
argv[1]="doc1.txt"
argv[2]="doc2.txt"
即命令行中各各字符串保存在 *argv[]中

简单说,这两个就是用于接受参数和记录参数信息的。
因为在LINUX或DOS中, 使用命令后面一般都加上参数等,如:c:\>cp.exe doc1.txt doc2.txt
AndyZhang 2011-09-21
  • 打赏
  • 举报
回复
虽然不报错,最好不要这么写
阿尔博特 2011-09-21
  • 打赏
  • 举报
回复
也只有国人写得书是用void main(),main函数只有两种形式,一种是int main(void),还有就是int main(int argc,char *argv[]),一般都可以简写成 int main()
chengwenyao18 2011-09-21
  • 打赏
  • 举报
回复
肯定有人向你推荐《C++ Primer》,不过我认为有一本叫《c++程序设计教程》(第四版)(美)H.M.Deitel,P.J.Deitel著 不错。
ANT2AUNTH 2011-09-21
  • 打赏
  • 举报
回复
因为现在的标准,main函数不能用void返回,一般是用int,不过VC++6.0还是main,新的编译器是通不过void main()的

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧