从linux内核脚本/mod/modpost.c:
static int is_vmlinux(const char *modname)
{
const char *myname;
myname = strrchr(modname, '/');
if (myname)
myname++;
else
myname = modname;
return (strcmp(myname, "vmlinux") == 0) ||
(strcmp(myname, "vmlinux.o") == 0);
}
我的理解:
这定义了char类型和const修饰符的指针。该指针不能更改。但是在接下来的几行中,我们更改了指针。
对吗?看起来不行。 :(
为什么在此代码中使用const?在这里做什么const?我们可以不用const来写吗?
答案 0 :(得分:6)
X
是指向常量(内容)的指针。您可以修改指针。例如Y
,const char * myname;
,但 不能修改内容。
myname = NULL
是一个常量指针。相反是可能的。您不允许修改指针,但 允许修改其指向的指针,例如myname++
,如果字母小写,则使字母大写。