作为 C 初学者,我想知道同一变量的双重定义的内存分配结果是什么,即:
第一个文件:file.h
int data;
第二个文件:main.c
#include "file.h"
...
int data = 56;
...
最佳答案
第 1 点。#include file.h
是错误的。您至少需要编写 #include "file.h"
第二点。这个概念本身也是错误的,因为这两个变量都在全局空间中。它会给你多个定义错误。
注意:但是,如果您在函数内执行int data = 56;
,那就没问题了,因为到那时,它将成为局部变量到该功能。
此外,我建议阅读有关 include guard 的内容。否则,如果您在头文件中定义变量,则在源文件中多次包含头文件也会产生多重定义错误。
最佳实践:
- 在头文件中声明变量。 [
extern int 数据;
] - 定义(其中一个)源文件中的变量。 [
int data = 56;
/int data;
]
关于c - C中的变量定义和内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28673123/