仍然与C语句中的声明和定义混淆:如果头文件如下:
#ifndef _BASIC_H_
#define _BASIC_H_
void test();
extern int i; //define or declare
#endif
Run Code Online (Sandbox Code Playgroud)
两个源文件f1.c和f2.c包含这个头,然后一个源文件需要定义变量"i".
但如果头文件是这样的:
#ifndef _BASIC_H_
#define _BASIC_H_
void test();
int i; //define or declare
#endif
Run Code Online (Sandbox Code Playgroud)
和两个源文件f1.c和f2.c,包含这个头,没有在任何文件中定义变量"i",当我使用变量时它仍然会通过.
我的问题是定义变量的时候.
谢谢
定义变量是指为存储分配内存并为其分配值.声明是指您存在具有特定名称和类型的变量,但已经为其分配了内存.
使用extern关键字意味着您要声明变量但不定义变量.
就您的具体问题而言,您的第一个例子是声明,第二个答案是定义.
| 归档时间: |
|
| 查看次数: |
865 次 |
| 最近记录: |