昨天在测试同事的一段代码时,返回值没有保存到变量中,而是直接进行判断的,类似这样:
由于check_state()是来自另一个.a文件的函数,所以无法改变它的返回值,每次它都返回非0值(导致func1()每次都返回-1。),但是我想测试func1()返回0时代码的执行情况。同事在此处并没有用一个变量来存储这个返回值,所以无法通过设置变量的值达到效果。
每个C语言的函数,都会通过寄存器返回值,所以我们可以通过修改func1()中寄存器的值,达到我们的测试目的。
写一个简单的测试代码来说明用法(检测输入参数是否大于10):