如何在 c/c 中定义一个常量数组?

新手上路,请多包涵

如何在 C/C++ 中定义常量 1 维或 2 维数组?我处理嵌入式平台(Xilinx EDK),所以资源有限。

我想在第三方头文件中写入类似

#define MYCONSTANT 5

但对于数组。喜欢

#define MYARRAY(index) { 5, 6, 7, 8 }

最常见的方法是什么?

原文由 Andrey Pesoshin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

在 C++ 源文件中

extern "C" const int array[] = { 1, 2, 3 };

在要包含在 C 和 C++ 源文件中的头文件中

#ifdef __cplusplus
extern "C" {
#endif
extern const int array[];
#ifdef __cplusplus
}
#endif

原文由 jahhaj 发布,翻译遵循 CC BY-SA 3.0 许可协议

只尝试了解编译器的作用。当它找到 HASHTAG 时,它会将其内容替换到写入的位置。例如,如果你这样做:

#define MYARRAY { 5, 6, 7, 8 }

字节列表[] = MYARRAY ;

您将在数组 ‘list’ 中得到它。获得相同结果的另一种方法是:

#define MYARRAY 5、6、7、8

字节列表[] = {MYARRAY} ;

总之,编译器所做的是“剪切”主题标签并“粘贴”其内容。我希望我已经解决了你的疑问

原文由 Jose 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题