从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);
}
Run Code Online (Sandbox Code Playgroud)
我的理解:
这是定义指向char类型和const修饰符的指针.此指针无法更改.但是在接下来的行中我们改变了指针.
这是对的吗?看起来没有.:(
为什么在这段代码中使用const?在这做什么const?我们可以不用const写吗?
const char * myname;
Run Code Online (Sandbox Code Playgroud)
是指向常量(内容)的指针.您可以修改指针.如myname = NULL,myname++但内容的修改是不是可能.
char * const myname;
Run Code Online (Sandbox Code Playgroud)
是一个常量指针.反之亦然.你是不是允许修改指针,但你都可以修改它指向例如*myname ^= ' ',这使得字母大写,如果是小写.
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |