代码之家  ›  专栏  ›  技术社区  ›  sourcenouveau

在C中,我在哪里定义const数组?

  •  1
  • sourcenouveau  · 技术社区  · 14 年前

    我在写一些C,我有一个整数的查找表。我有点生疏…在哪里声明和初始化数组,以便在多个C文件中使用它?我可以在H文件中声明它并在C文件中初始化它吗?

    4 回复  |  直到 14 年前
        1
  •  3
  •   jamesdlin    14 年前

    全局变量应在.h文件中声明,并应声明为 extern ,然后应该在.c文件中定义它们。见 What's the best way to declare and define global variables and functions? 来自comp.lang.c常见问题解答。

    对于阵列,可能需要额外的注意。见 Q1.24 来自comp.lang.c常见问题解答。

        2
  •  2
  •   Tomasz Kowalczyk    14 年前

    如果我理解正确,是的,你可以做到。读一些关于

    extern static
    

    关键词。

        3
  •  2
  •   Jerry Coffin    14 年前

    在一个C文件中定义数组,并在另一个文件中将其声明为外部数组。

    一个常见的错误是将数组等同于指针,并执行如下操作:

    // file1.c:
    int array[] = { 1,2,3,4};
    
    // file1.h:
    extern int *array;
    
    // file2.c:
    #include "file1.h"
    
    // use array
    

    本遗嘱 工作。在某些情况下,可以将数组的名称视为指针,但这是 他们中的一个。[编辑:正确的做法是:

     // file1.h:
     extern int array[];
    
        4
  •  1
  •   Oliver Charlesworth    14 年前

    您可以在头文件中声明它 extern ,并在其中一个源文件中定义它。但是,根据定义,它也不能 static .