gpt4 book ai didi

我们可以声明、定义变量并为其赋值,然后在另一个文件中使用这些变量吗?

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:33 24 4
gpt4 key购买 nike

我是 C 编程的初学者,我正在尝试不同的方法并尝试使用小程序。

我有四个文件。两个头文件和两个源文件。我想:

  1. 声明一个变量(实际上是两个变量和一个char)和一个一个头文件中的函数(来自第二个源文件)。
  2. 定义这些变量并在第二个标题中为它们赋值文件(第 1 点的变量)。
  3. 编写一个包含这两个头文件的函数,并使用来自这些文件(第 2 点)的值在一个源文件中(没有 main-只是一个使用变量的函数定义)。
  4. 有一个主源文件调用第二个函数源文件(从第 3 点开始)

我该怎么做?我在两个 .c 文件中都包含了两个头文件。但是当我尝试编译和链接它时(在 Linux 中使用 GCC)我得到了一个 多个定义 ... 首先在此处定义 所有变量的错误。

我看过这些答案 FirstSecond我不太明白 Second 中的答案因为我不知道如何使用 header guards。我无法弄清楚如何选中所有复选框(第 1 点到第 4 点)。

header1.h

extern int i,j; extern char c;
void ad_d();

header2.h

int j=6;int i=7;
char c='x';

fn文件.c

#include "header1.h"
#include "header2.h"
#include<stdio.h>

void ad_d()
{

i+=j;

printf("\n %d \t %c \n", i,c);
}

文件主.c

#include<stdio.h>
#include "header1.h"
#include "header2.h"



void main()
{

ad_d();
}

最佳答案

您只能定义一个变量一次,它会覆盖存储值的内存空间。然后你可以在每个文件中声明变量(或者更好的是在一个公共(public)头文件中)这将告诉编译器该名称和类型的变量将在其中一个编译文件中定义,并且可以在稍后阶段找到.

在要定义变量的文件中使用:

int my_global = 0; /* always good practice to initalize */

在其他文件(或通用 header )中使用:

extern int my_global;

现在您可以从声明它的任何文件读取或写入 my_global。

header guard 试图将定义和声明移动到同一个语句中,在您的级别上,您最好在尝试玩这样的游戏之前了解声明与定义。

关于我们可以声明、定义变量并为其赋值,然后在另一个文件中使用这些变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15748183/

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