我正在为许多不同的 3 轴传感器编写测试代码。在每个文件的 C 文件中,我定义了相同的字符串:
char axis[3][8] = {"X", "Y", "Z"}
当我“for”循环结果打印失败的轴时,我使用它,如下所示:
DEVICETEST_LOG("%s Failed %s axis for Min range\n",device_name[DUT], axis[i]);
我想节省一些空间,我可以在头文件中定义一个字符串数组以便在所有地方使用。
我已经尝试了很多方法,但我似乎无法获得头文件中定义的字符串数组,我可以迭代这些字符串来传递编译。
如果必须将其放入头文件中,请使用extern
or static
:
// option 1
// .h
extern char axis[3][8];
// .c
char axis[3][8] = { "X", "Y", "Z" };
// option 2
// .h
static char axis[3][8] = { "X", "Y", "Z" };
Extern 告诉链接器有一个名为的全局变量axis
在我们的实现文件之一中定义(即在一个.c
文件),我需要在这里引用它。
static
另一方面,告诉编译器相反的信息:我需要能够看到并使用这个变量,但不要将其导出到链接器,因此它不能被 extern 引用或导致命名冲突。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)