c语言编程有趣问题
C语言程序开发中,难免会出现逻辑错误,怎样让程序自己输出错误位置呢?
谢邀。
在C语言程序开发中,程序员常常会把一个复杂的任务拆分成若干个较为简单的子模块,这些子模块可以看做是复杂任务的各个组成部分。因此,程序员将子模块逐个完成后,就可以将其像“积木”一样搭建起来,进而解决复杂任务。
之所以要这么做,是因为若直接编写C语言代码一次性解决复杂任务,往往会让整个代码“揉作一团”,不仅开发时容易引入 bug,而且后期维护起来也比较痛苦。想象一下,若将任务拆分成若干个子模块,以后发现问题时,可能只需要修改某个子模块就可以了。但是若没有这么做,查找和解决问题就必须对全部代码下手了。哪一种开发风格维护起来方便,相信题主自然明白。
将任务拆分成子模块后,每个子模块常常被封装成一个C语言函数,所以,最后的“堆积木”其实就是调用各个C语言函数。不过,每一个子模块都有可能得到正常结果,也有可能得到异常结果,这通常用C语言函数的返回值区分。在“堆积木”阶段调用各个函数时,应该根据被调用函数的返回值做不同的处理。
例如,某个子模块负责计算用户输入数字的 log(对数) 值时,如果用户输入的是正数,则该子模块能够得到正常的结果。但如果用户输入的是负数,子模块显然就无法得到正常结果了。
这里的例子C语言代码尽可能的简单,是为了将重心放在讨论主题上:
cond() 函数产出 0~10 的随机数,如果随机数小于 5 就返回 -1(模拟异常结果),否则返回 0(模拟正常结果)。fun1() 函数和 fun2() 函数都会根据 cond() 函数的返回值做一些进一步的工作(上面的C语言代码略过了“进一步工作”)。在 main() 函数中“堆积木”调用 fun1() 和 fun2() 函数时,使用了 if 语句判断它们的返回值,并且根据返回值做了不同的处理。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/21982.html