【发布时间】:2019-09-19 17:10:43
【问题描述】:
我已经定义了以下静态常量数组:
const int arr[197] = { 55, -63, 12, -17, 121 , ... };
数组永远不会改变。它包含一些符合我的程序的特定数字模式。 该数组用于三个不同的文件:
-
foo1()在file1.c -
foo2()在file2.c -
foo3()在file3.c
每次将数组作为参数传递给函数。
因为这个数组的定义很长而且很广泛,我想创建一个单独的文件来定义和保存这个数组。
应该如何正确完成?我应该在假设arr.h 中定义该数组,然后将#include <arr.h> 放入使用该数组的.c 文件中吗?
【问题讨论】:
-
我可以看到您的问题不是关于数组本身,而是关于全局变量和它们的可访问性。您可以创建一个单例类并共享它,也可以将其设为静态并共享它。有很多方法可以做到这一点。
-
在
.h中声明为extern并在.c中定义 -
@IłyaBursov 那么在
arr.c中定义,在arr.h中声明为extern,然后在.c文件中声明为#include <arr.h>将使用该数组? :) -
@weno 是的,这就是它在 c 中的工作方式
-
“每次将数组作为参数传递给函数” 是的,这是正确的做法。请注意,将数组作为参数传递实际上只传递了指向数组中第一个对象的指针。所以对性能的影响很小。