c - 在 C 中的单独文件中包含变量吗?

标签 c

我创建了一个结构项:

typedef struct item
{
    char name[20];
    char desc[100];
    int lp;
    int shield;
    int weapon;
} item;

我需要 36 个,因此我创建了一个数组 item Treasure[6][6];

对于每个项目,我按如下方式插入数据:

    strcpy(treasure[0][0].name, "name");
    strcpy(treasure[0][0].desc, "none");
    treasure[0][0].lp = 0;
    treasure[0][0].shield = 0;
    treasure[0][0].weapon = 200;

我这样做了 36 次,并在编辑器中占用了大量空间,我的问题:我可以将其放在单独的 .c/.h 文件中吗?我一直在努力,但无法使其发挥作用。

感谢您的帮助!

最佳答案

我建议使用一个文件,例如 init.h 并包含以下内容

#include <string.h>
typedef struct item {
  char name[20];
  char desc[100];
  int lp;
  int shield;
  int weapon;
} item;

item treasure[1][1] = {
    {{.name = "name", .desc = "none", .lp = 0, .shield = 0, .weapon = 200}}};

这样,您必须能够在另一个文件中初始化矩阵 6, 6 的结构,然后您必须能够从 ma​​in 程序中访问它,如下所示:

#include "init.h"
#include <stdio.h>

int main() {
  printf("%s\n", treasure[0][0].name);
  return 0;
}

我希望这对你有用,还有另一种方法来初始化结构,但这是我更常用的方法。您可以在这里找到更多信息 https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html

关于c - 在 C 中的单独文件中包含变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42105296/

相关文章:

c - 我在 flex/bison 中的所有 token 都显示为未声明

c - 这个 c 程序在 windows 中工作正常但在 Linux 中不工作

c - sleep 与 SIG_ALARM 使用率和 CPU 性能

c - C 中的字母猜谜游戏

c - 尽管我正在尝试更改数据类型,是否可以运行此代码?

c - 带字符串的指针运算

python - 使用 subprocess.Popen 顺序执行 python 脚本

c - 为什么我的功能不起作用,我需要做一个距离计算器

c - C 中的链表仅打印最后一个元素

c - 尽管设置了 O_CREAT,为什么我不能打开共享内存对象?