1、可以在文件的头部定义一个__DEBUG宏,值为1,来标记程序处于调试阶段还是执行阶段。这样在调试的部分就可以用if(__DEBUG)来包含调试信息,而不需要调试信息时,可以直接将__DEBUG宏定义为0.这样很方便,而且需要屏蔽部分调试信息时,只需要使用if(! __DEBUG)就可以了。
2、比较复杂的函数写完之后,可以先进行单元测试,保证功能上执行的正确性,这样其实避免了在一整个程序中去找bug出现在哪里就方便的多了,时间也节省下来了。
3、//const只能用于类的成员函数,普通的函数不能使用const来修饰。
如:下面的函数是错误的,无法编译通过
int cal(int a,int b) const{
return a+b ;
}
4、//字符数组用0填充后,对应的元素为'/0',而不是'0'
char a[5];
memset(a,0,sizeof(a));
assert(a[0] == '/0');
cout<<a[0]<<"1"<<endl;
'/0'的在终端显示为一个空位,不打印任何字符。'/0'就是“空字符”。
5、//字符数组可以使用memset函数进行拷贝,参数直接使用数组名,而不是数组的首元素地址。
char kk[2][2]={
'1','2','2','2'
};
char cc[2][2];
memcpy(cc,kk,sizeof(kk));
for(int i=0 ; i<2 ;i++){
for(int j=0 ; j<2 ;j++){
cout<<cc[i][j]<<" ";
}
cout<<endl;
}