Из сценариев ядра 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?