现在,据我了解,extern
声明中的name[]
告诉编译器它的定义在其他地方(在我的程序中,我已经在我使用它的部分下面定义了它)。但是为什么 and 会有不同的strlen()
结果sizeof
?strlen()
工作正常,但sizeof()
我得到错误:
invalid application of 'sizeof' to incomplete type 'char[]' |
这是我的程序:
#include<stdio.h>
#include<string.h>
extern char name[];
int main()
{
printf("%d,%d",strlen(name),sizeof(name));
}
char name[]="Bryan";
//char name[6]="Bryan"; //Neither of these make sizeof work
我试图根据我对extern
关键字的理解来推理它,但我遇到了瓶颈。所以请给出你的答案。