作者huhunhiaccc (chchch)
看板C_and_CPP
标题[问题] return值的问题
时间Wed Dec 16 16:27:40 2020
大家好
请问下面程式码第五行为什麽return要回传的值是-1?
为什麽不是0
有代表什麽意思吗 我google都查不到相关的
只好来询问板上各位大大
int Polynomial_Print(Polynomial *poly)
{
int cc = 0;
int ii;
if (poly == NULL) return -1;
for (ii = Polynomial_MaxDegree; ii >= 2; ii--) {
if (poly->coef[ii] != 0) {
if (cc == 0) {
printf("%fx^%d", poly->coef[ii], ii);
}
else {
printf("%+fx^%d", poly->coef[ii], ii);
}
cc++;
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 116.241.62.70 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1608107262.A.558.html
1F:→ loveme00835: 你其他地方的回传值分别是多少? 12/16 16:29
2F:→ huhunhiaccc: 谢谢回覆 这个函式库里的函式除了宣告void的都是回 12/16 16:35
3F:→ huhunhiaccc: 传-1或是多项式的degree值还有一个确认是否为0多项 12/16 16:35
4F:→ huhunhiaccc: 式的是回传(1==1) 12/16 16:35
5F:→ loveme00835: 连 Polynomial_Print() 结尾也是回传 -1? 因为 int 12/16 16:38
6F:→ loveme00835: 作为函式回传值型别是很差的设计, 所以必须藉由程式 12/16 16:38
7F:→ loveme00835: 码来推敲设计的目的以及合理性 12/16 16:38
8F:→ Schottky: 第五行应该是检查参数,排除不合理或不接受的参数 12/16 16:54
9F:→ Schottky: 但为什麽是 return -1 要看注解或问原作者 12/16 16:55
10F:→ Schottky: 毕竟从你剪下的片断并没办法判断正常应该是return什麽 12/16 16:56
11F:→ Schottky: 所以你问为什麽不是 0,这个问题我也觉得摸不着头脑 12/16 16:57
12F:→ Schottky: 为什麽你觉得要是 0 ? 12/16 16:57
13F:→ huhunhiaccc: 0只是打个比方 我想知道的是-1有没有代表什麽意思 12/16 17:02
14F:→ huhunhiaccc: 还是其他任何整数都可以 12/16 17:02
15F:推 LPH66: 如果是其他人写的函式库程式码, 它的文件里一定会有解释 12/16 17:17
16F:→ LPH66: 这种事情你只能问写的人他想表达什麽 12/16 17:17
17F:推 ddavid: 这完全要看他整体是怎麽设计的 12/16 17:48
18F:→ ddavid: 有的时候只是用-1表达某个意思,但有时可能是某种tricky用 12/16 17:50
19F:→ ddavid: 法(比如呼叫者会拿来+1再往回丢之类的),这没法只看这边 12/16 17:50
20F:→ ddavid: 得到结论 12/16 17:50
21F:→ ddavid: 不过要我猜的话,我会猜这边的-1只是拿来当error code,但 12/16 17:51
22F:→ ddavid: 还是要强调这只是猜测 12/16 17:51
23F:→ loveme00835: 你要有其他种类的回传值存在, 才可能从用法推敲出各 12/16 18:25
24F:→ loveme00835: 自扮演的角色为何 (通常是正交的) 12/16 18:25
25F:推 ctrlbreak: 这code google的到,0以上都合法所以只能传-1当错误吧XD 12/16 19:29
26F:推 ddavid: 楼上这样说很合理也很常见XD 12/17 16:01
27F:推 ddavid: 愿意使用exception的在这种情况可能就会选择使用来做区别 12/17 16:42
28F:推 kingofsdtw: 看个人写作风格,严谨的程式会避免用-1,0 12/26 08:12
29F:推 kingofsdtw: 当作true 12/26 08:14