用户:404082727(走尽天涯路②)
================================================== 消息组:群/校友录(51) ================================================== 消息类型:聊天记录 ==================================================
2004-12-05 12:36:53 /k雨(9) int test(int i){ i++; }
int main(void){ int i = 0; for(i = 0; i < 10; i++){ test(i); } }
有意义吗
2004-12-05 12:42:15 走尽天涯路②() 没意义
2004-12-05 12:42:20 走尽天涯路②(7) 还有错
2004-12-05 12:42:46 走尽天涯路②(7) return 0; 主函数没返回值
2004-12-05 12:43:13 走尽天涯路②() test 也没有
2004-12-05 12:48:54 Bucha() 疏忽了。[:-|] 不过这个只是因为有人问优化后的代码什么样子而做的,没有任何意义。
2004-12-05 12:55:10 /kun流星雨(4) 呵呵
2004-12-05 12:56:01 飘雨(16) 想讨论一下:主函数返回0有什么意义?
2004-12-05 12:56:46 走尽天涯路②(4) 系统可以知道 程序正常结束了
2004-12-05 12:57:01 飘雨(1) 返回1也不是一样正常结束程序?
2004-12-05 12:57:27 飘雨时) 也没看到什么区别啊
2004-12-05 12:58:16 飘) 恐怕没人说的清楚了吧?sad
2004-12-05 12:58:35 Bu 大多数情况下都无所谓。但系统可以从这个返回值里知道你的程序有没有出错。一般return 0表示没有。而非零的值表示某个错误代码。Unix里的习惯而已
2004-12-05 13:00:04 走尽天涯路②() 真有点说不很清楚了 刚学多不注意这个的
2004-12-05 13:00:17 飘雨时 这样啊... 我觉得吧...如果程序中真的有错误没等执行到return 0恐怕就结束了
2004-12-05 13:02:12 Buch) 但并不排除在最后出现的可能性。再说一般在最后返回0,表示正常。不然别的程序怎么知道你是在最后返回还是在中间返回?
2004-12-05 13:02:52 Buch) 比如说DOS下面,返回值就存在errorlevel里面
2004-12-05 13:05:15 飘) 如果是执行到中间出现错误而导致意外结束...系统怎么知道这个错误呢?
2004-12-05 13:06:14 Buchi) 最简单的就是返回一个非零值。无数Unix下的小程序都这样干
2004-12-05 13:09:33 飘) 我还有点疑惑: return 0 return 1 都是程序的最后一句,不管这个程序是正常结束还是非正常结束,所有的执行过程都执行过了,现在才告诉系统,又什么用?系统知道了又能怎么样?
2004-12-05 13:10:58 飘雨6) Buchi Automata大哥?
2004-12-05 13:10:59 Buch 这个是由人来定的哈。如果一个程序认为1是错误,那它就可以相应地处理。
2004-12-05 13:11:19 laz 仅仅是表示程序执行成功。 系统需要知道这个
2004-12-05 13:12:12 Buch) 就算系统需不需要知道,也是有你来定的哈
2004-12-05 13:12:36 飘) 我不知道怎么设定这东东
2004-12-05 13:13:02 飘雨) 或许unix可以,windows下不行?
2004-12-05 13:13:45 Buc) 视需要而定了。Windows下也可以,只不过好像没多少人这么用罢了。
2004-12-05 13:14:15 飘) 强烈要求Buchi Automata大哥讲讲
2004-12-05 13:14:38 Buc3) 我不做windows下面的编程,所以不清楚。
2004-12-05 13:16:08 飘雨 失望ing...那么请讲讲unix下如何处理返回非0值的情况,知道原理也可以啦
2004-12-05 13:17:35 Buc) 至于Unix下面,我已经说了啊。举个例子。比如说你的程序是杀掉一个进程:killprocess。那你在shell下面调用的时候就可以说: v = killprocess if(v==1) echo successful else echo failed
2004-12-05 13:18:55 Buc 也就是说,什么数字代表什么,由程序员定。没什么好说的阿
2004-12-05 13:19:50 飘雨) 努力理解中...
2004-12-05 13:21:30 飘) v = killprocess if(v==1) echo successful else echo failed file://调用一个程序,和在程序里调用一个函数没什么区别 file://不过这个shell好象是一个编程环境?
2004-12-05 13:21:50 Buc) 相当于dos窗口
2004-12-05 13:22:56 飘) 相当于dos窗口 ---------------- 在里面敲入编程指令,观察程序结果?
2004-12-05 13:23:01 /k 主函数要向系统的调用者返回整型值。系统不能忽略这个返回值,所以"void main()"在C++和C都是非法的
2004-12-05 13:23:43 Bu) 系统可以忽略这个值哈。不晓得哪本书上这么说的
2004-12-05 13:23:46 飘雨 主函数要向系统的调用者返回整型值。系统不能忽略这个返回值,所以"void main()"在C++和C都是非法的 --------------------------- void main () 我记得是可以这样写的
2004-12-05 13:23:54 /ku) 标准吧,
2004-12-05 13:24:22 Buchi) 什么标准?
2004-12-05 13:24:34 /kun流 此外还要注意,不用于C89和ARM C++标准,在ISO C++和C99标准中不允许省略主函数的类型声明
2004-12-05 13:25:04 /kun流星 不允许省略主函数的类型声明
就要有返回值
2004-12-05 13:25:40 Buchi 嗯,C++里面是。但这个很系统能不能忽略返回值是无关的。语言是语言,系统是系统哈
2004-12-05 13:27:02 /kun流星 呵呵
2004-12-05 13:27:13 /kun流 不能理解,DING、、、、、、、、
2004-12-05 13:28:26 飘雨时 刚想起一个问题: return 0; return 1; 不管返回什么..表示正常退出还是非正常退出,我们都可以看到一个显式的退出语句,而真正会导致程序非正常退出的错误肯定是程序员所未能预料的,所以肯定不会先写一个return语句放在那里,给系统返回一个错误指
2004-12-05 13:28:56 Buchi Au 其实很好理解:C++标准定义了main函数必须返回一个int,但这个只是语法的规定。至于其他程序是不是得一定处理这个返回值,显然不一定哈
2004-12-05 13:30:11 飘雨时 那么这个时候系统如何捕获这个错误?
2004-12-05 13:30:20 Buchi Au 那不一定。我可以try{ ....}catch(exception e){return 1;}。这样做的多了。再说不要狭隘地理解系统出错哈。不是所有错误都导致程序异常退出的。
2004-12-05 13:31:40 Buchi Aut 如果程序异常退出,系统往往只能得到一个没有具体含义的错误信息。说明你程序编得不好 [:D]
2004-12-05 13:34:16 飘雨时分 哈哈,在错误在没有严重到直接退出程序的时候 可以用异常处理退出程序? 如果这个错误严重到直接退出就只能说我程序写的不好了 ------------------- 是不是这个意思?sadsadsad
2004-12-05 13:35:17 Buchi Au 异常只是一个例子。那C里还没有语言级别的异常呢。反正程序应该尽量处理各种异常。
2004-12-05 13:36:55 飘雨时分/ 受益非浅...
2004-12-05 13:37:43 飘雨时分 我就知道大哥是个硬手..所以一定要拉来的说ohh
2004-12-05 13:37:55 飘雨时 先去吃饭
2004-12-05 13:39:08 Buchi Autom [:$] 过奖了

|