在 C 中存储常量数据的最佳方法

提奥冠军

假设我正在编写一个 C 程序,当用户输入宝石的名称时,它会显示有关宝石的信息。

宝石的名称永远不会改变,而且只有不到 20 个,因此在运行时从外部文件中读取它们似乎有点矫枉过正。

我还需要从多个文件中访问这些名称(假设是两个)。

我通常做的是声明一个全局 char * 数组,如下所示:

char *g_rsc_names[] = {"linemate", "deraumere", "sibur", "mendiane", "phiras", "thystane"};  

在我需要使用的文件中。这对我来说看起来很不错,但这仅允许我访问我声明此全局数组的文件中的名称。

在这种情况下,存储宝石名称的最佳/最干净的方法是什么?

您可以使用一个函数包装您的数组,该函数返回const char*适当的石头名称,并将该声明放入您包含在多个文件中的全局头文件中:

const char* get_stone_name(size_t id);

源文件中定义get_stone_name如下:

const char* get_stone_name(size_t id) {
    static const char* const names[] = {
        "linemate", "deraumere", "sibur", "mendiane", "phiras", "thystane"
    };
    return (id < (sizeof(names) / sizeof(names[0])) ? names[id] : "");
}

Decaring namesasstatic将保证不会被多次初始化,作为一个附带选项,您可以防止用户将您的数组索引到越界。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Objective-C中定义常量的最佳方法

来自分类Dev

在C ++中定义类作用域常量的最佳方法

来自分类Dev

在C#UWP应用中存储传感器数据的最佳和最快方法

来自分类Dev

在C#应用程序中存储数据的最佳方法是什么

来自分类Dev

在磁盘C ++上存储科学数据集的最佳方法

来自分类Dev

在C#PCL中存储设置的最佳方法是什么

来自分类Dev

在C#中存储问卷/答案的最佳方法?

来自分类Dev

在C ++中定义全局数据的最佳方法是什么?

来自分类Dev

在C ++中从文件输入/输出数据的最佳方法?

来自分类Dev

在C#.net应用程序中将数据存储在本地的最佳方法是什么?

来自分类Dev

在 C# 中使用键/值存储排序数据的最佳方法是什么

来自分类Dev

这是在c ++中存储1个键和2个值的最佳数据结构

来自分类Dev

在.NET中存储一堆常量值的最佳方法

来自分类Dev

在.NET中存储一堆常量值的最佳方法

来自分类Dev

在C ++(〜500 Mo)中存储,加载和使用反向索引的最佳方法

来自分类Dev

在WPF C#应用程序中存储键/值对的最佳方法是哪种?

来自分类Dev

在C ++(〜500 Mo)中存储,加载和使用反向索引的最佳方法

来自分类Dev

使用目标c中的值存储任何类型的常量

来自分类Dev

在SSE寄存器(GCC,C ++)中存储常量

来自分类Dev

在会话中存储数据的最佳方法

来自分类Dev

C ++中数据存储的概念

来自分类Dev

处理C ++中大数据的最佳方法?

来自分类Dev

处理C ++中大数据的最佳方法?

来自分类Dev

在Rails中存储常量数据

来自分类Dev

在Rails中存储常量数据

来自分类Dev

存储指针向量的最佳C ++ 11方法

来自分类Dev

C#调用MySQL存储过程,函数的最佳方法

来自分类Dev

使用C#中的主键将行插入数据库的最佳方法是什么

来自分类Dev

设计此方法的最佳实践:C#中的枚举或单独的数据库表

Related 相关文章

  1. 1

    在Objective-C中定义常量的最佳方法

  2. 2

    在C ++中定义类作用域常量的最佳方法

  3. 3

    在C#UWP应用中存储传感器数据的最佳和最快方法

  4. 4

    在C#应用程序中存储数据的最佳方法是什么

  5. 5

    在磁盘C ++上存储科学数据集的最佳方法

  6. 6

    在C#PCL中存储设置的最佳方法是什么

  7. 7

    在C#中存储问卷/答案的最佳方法?

  8. 8

    在C ++中定义全局数据的最佳方法是什么?

  9. 9

    在C ++中从文件输入/输出数据的最佳方法?

  10. 10

    在C#.net应用程序中将数据存储在本地的最佳方法是什么?

  11. 11

    在 C# 中使用键/值存储排序数据的最佳方法是什么

  12. 12

    这是在c ++中存储1个键和2个值的最佳数据结构

  13. 13

    在.NET中存储一堆常量值的最佳方法

  14. 14

    在.NET中存储一堆常量值的最佳方法

  15. 15

    在C ++(〜500 Mo)中存储,加载和使用反向索引的最佳方法

  16. 16

    在WPF C#应用程序中存储键/值对的最佳方法是哪种?

  17. 17

    在C ++(〜500 Mo)中存储,加载和使用反向索引的最佳方法

  18. 18

    使用目标c中的值存储任何类型的常量

  19. 19

    在SSE寄存器(GCC,C ++)中存储常量

  20. 20

    在会话中存储数据的最佳方法

  21. 21

    C ++中数据存储的概念

  22. 22

    处理C ++中大数据的最佳方法?

  23. 23

    处理C ++中大数据的最佳方法?

  24. 24

    在Rails中存储常量数据

  25. 25

    在Rails中存储常量数据

  26. 26

    存储指针向量的最佳C ++ 11方法

  27. 27

    C#调用MySQL存储过程,函数的最佳方法

  28. 28

    使用C#中的主键将行插入数据库的最佳方法是什么

  29. 29

    设计此方法的最佳实践:C#中的枚举或单独的数据库表

热门标签

归档