经常我们写一个函数时,假如它有多个参数,我们在函数入口处,对这多个参数的有效性进行检查,经常使用的写法会像下面一样
#include "stdafx.h"
#include <iostream>
void testFunction(int *pTest, int test, bool isTest){
if((pTest == NULL) || (test < 0) || (isTest == false)){
printf("invalid argument\n");
return;
}
return;
}
int _tmain(int argc, _TCHAR* argv[]){
testFunction(NULL, 10, true);
return 0;
}
当然,这样的写法你会在PC上,或是能够进行单步调试的时候,设置断点,能够很清楚的知道哪个参数无效,但是我们再嵌入式开发的时候,在真机上调试,常常只能用printf语句打印来进行调试,遇到这种写法,你只知道参数有误,却不知道是哪个参数出了问题。然后又来加打印,去查看值看哪个参数出了问题。。。。。。
或者,你可以直接写成下面这样的写法:
void testFunction(int *pTest, int test, bool isTest){
if(pTest == NULL){
printf("invalid argument of pTest\n");
return;
}
if(test < 0){
printf("invalid argument of test\n");
return;
}
if(isTest == false){
printf("invalid argument of isTest\n");
return;
}
return;
}