gpt4 book ai didi

c - C中的变量定义和内存分配

转载 作者:行者123 更新时间:2023-11-30 20:05:55 24 4
gpt4 key购买 nike

作为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com