今天在做一个linux模块,需要传递一个字符串,理所当然:
void fuc(char *string )
{
.....;
}
一般正常的写法都说考虑fuc是否会对字符串进行改动而定义参数,在一般,参数只允许只读。于是:
void fuc(const char *string)
{
.....;
}
由于有时懒散,传进去的刚好是const类型,在函数参数const没考虑加进去,又刚好不小心对string进行了小小的修改,例如常见的加个'\0',于是导致挂了。当看bug信息很难找到问题,我也找了N久。
加入const好处:
能让编译器提醒你不必要的错误。