在下面的函数中使用关键字const
会有什么好处。
BOOL8 CheckSimilarity(const Name_t NameOne, const Name_t NameTwo)
我一直认为你必须传递变量指针并与函数中的指针进行比较,以便它进入存储变量的内存位置,并像在K& R中那样比较交换函数中的变量本身?
typedef UINT8 Name_t[5]
Log_t* Log(Name_t Name)
{
Log_t *point2Log = Log1;
while (point2Log < Log1)
{
if (CheckSimilarity(Name, point2Log->Name))
{
return point2Log;
}
point2Log++;
}
return NULL;
}
BOOL8 CheckSimilarity(const Name_t NameOne, const Name_t NameTwo)
{
UINT8 count;
for (count=0; count<5; count++)
{
if (NameOne[count] != NameTwo[count])
{
return FALSE;
}
}
return TRUE;
}
答案 0 :(得分:3)
在参数的情况下,它告诉编译器该函数不会修改其参数。这反过来可能使编译器能够执行一些其他方式可能没有完成的快捷方式或优化。
这也是你的程序员可以阅读的内容,并且知道他们可以调用该函数而不必担心对例如内容的可能的副作用。阵列。
谈论程序员及他们可以阅读的内容,似乎您已将Name_t
定义为指针的别名。请不要这样做,这会使代码更难阅读,遵循和维护。