[问题] return值的问题

楼主: huhunhiaccc (chchch)   2020-12-16 16:27:40
大家好
请问下面程式码第五行为什么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
作者: loveme00835 (发箍)   2020-12-16 16:29:00
你其他地方的回传值分别是多少?
楼主: huhunhiaccc (chchch)   2020-12-16 16:35:00
谢谢回复 这个函式库里的函式除了宣告void的都是回传-1或是多项式的degree值还有一个确认是否为0多项式的是回传(1==1)
作者: loveme00835 (发箍)   2020-12-16 16:38:00
连 Polynomial_Print() 结尾也是回传 -1? 因为 int作为函式回传值型别是很差的设计, 所以必须借由程式码来推敲设计的目的以及合理性
作者: Schottky (顺风相送)   2020-12-16 16:54:00
第五行应该是检查参数,排除不合理或不接受的参数但为什么是 return -1 要看注解或问原作者毕竟从你剪下的片断并没办法判断正常应该是return什么所以你问为什么不是 0,这个问题我也觉得摸不著头脑为什么你觉得要是 0 ?
楼主: huhunhiaccc (chchch)   2020-12-16 17:02:00
0只是打个比方 我想知道的是-1有没有代表什么意思还是其他任何整数都可以
作者: LPH66 (-6.2598534e+18f)   2020-12-16 17:17:00
如果是其他人写的函式库程式码, 它的文件里一定会有解释这种事情你只能问写的人他想表达什么
作者: ddavid (谎言接线生)   2020-12-16 17:48:00
这完全要看他整体是怎么设计的有的时候只是用-1表达某个意思,但有时可能是某种tricky用法(比如呼叫者会拿来+1再往回丢之类的),这没法只看这边得到结论不过要我猜的话,我会猜这边的-1只是拿来当error code,但还是要强调这只是猜测
作者: loveme00835 (发箍)   2020-12-16 18:25:00
你要有其他种类的回传值存在, 才可能从用法推敲出各自扮演的角色为何 (通常是正交的)
作者: ctrlbreak   2020-12-16 19:29:00
这code google的到,0以上都合法所以只能传-1当错误吧XD
作者: ddavid (谎言接线生)   2020-12-17 16:01:00
楼上这样说很合理也很常见XD愿意使用exception的在这种情况可能就会选择使用来做区别
作者: kingofsdtw (不能閒下來!!)   2020-12-26 08:12:00
看个人写作风格,严谨的程式会避免用-1,0当作true

Links booklink

Contact Us: admin [ a t ] ucptt.com