当我们写int a时,编译器会给int a内存,但现在我只想告诉编译器变量是整数,但不想让编译器给a任何内存。
如果它是全局变量,则使用extern
使其成为纯声明:
extern int a;
如果程序使用它,它仍然需要在某个地方定义
如果它是一个局部变量,那么在不定义它的情况下就不能声明它;它将在程序到达声明时创建。
您可以这样说:
extern int a;
这样,这里就不会为a
分配存储空间,并且在构建可执行文件时,链接器将在另一个模块中查找符号a
。如果找不到它,您将得到一个链接器错误。这是意料之中的事,因为你不可能有一个不存在的变量。