gpt4 book ai didi

c - 在 C 中使用 STRUCT 时的命名约定

转载 作者:行者123 更新时间:2023-12-02 07:49:33 30 4
gpt4 key购买 nike

我正在学习C,发现有人定义了一个结构体,它的结构体名称前面有_。这是我第一次看到它,有人可以告诉我更多吗?为什么有人会使用_aStructName而不是aStructName,有什么好处?

struct _huffmanNode {
int value;
uint32_t frequency;

int hasChild;
struct _huffmanNode *child[2];

struct _huffmanNode *next;
};

同样,我发现有人在以下代码中使用这种命名约定:

typedef struct HuffCode_ {

unsigned char used;
unsigned short code;
unsigned char size;

} HuffCode;

最佳答案

用户代码没有任何好处,只是丑陋。在第二个示例中,HuffCode_ 甚至不是必需的,因为 struct 类型已由 typedef 命名。

唯一有用的地方是:

  1. StructName 已被使用时,StructName_ 会给出不同的名称(但您确实应该想出一个更好的名称)。
  2. C 标准库中未由标准定义的标识符不应与用户代码标识符冲突。因此,C 库编写者使用 _ 前缀,希望用户不会使用它。不幸的是,有些用户确实这样做。
  3. 在非常古老的编译器中,为 struct 指定一个与 typedef 中使用的名称不同的名称可能会很有用。如果您要构建链接结构 ( example ),则需要 typedef 和其他名称。

关于c - 在 C 中使用 STRUCT 时的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5558994/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com