gcc 4.4.4 c89
我只是想知道在创建类型时是否应该遵循任何标准.
例如:
typedef struct date
{
} date_t;
Run Code Online (Sandbox Code Playgroud)
我也看到人们把这样的资本投入:
typedef struct date
{
} Date;
Run Code Online (Sandbox Code Playgroud)
或者变量
typedef unsigned int Age;
Run Code Online (Sandbox Code Playgroud)
或这个
typedef unsigned int age_t;
Run Code Online (Sandbox Code Playgroud)
是否有任何应遵循的标准.我个人更喜欢用_t进行后固定.
非常感谢任何建议,
你可以简单地使用
typedef struct toto toto;
Run Code Online (Sandbox Code Playgroud)
struct toto(标签)和
typedef名称toto(标识符),可在不同C"名称范围",所以它们是相容的,但它们指向到底相同的类型.typedef.toto有时令人困惑的变量.其中大部分归结为个人偏好,关键是要保持一致(或者如果你有公司惯例,那就使用它).以下文章有一些命名指南:
http://www.montefiore.ulg.ac.be/~piater/Cours/Coding-Style/
请注意,它会切换'_t'部分:
typedef struct node_t {
void *content;
struct node_t *next;
} Node;
typedef enum season_t { SPRING, SUMMER, FALL, WINTER } Season;
Run Code Online (Sandbox Code Playgroud)
这里有一个关于C命名约定的早期讨论:
我认为没有任何“标准”命名约定。事实上,它们在项目之间(以及在 C++ 或 Java 等其他语言之间)差异很大,以至于我个人在所有语言中都采用了驼峰命名法。
我总是通过 定义我的结构typedef,所以我只使用我本来会给它的任何名称(这也是 Win32 API 所做的)。如果我需要一个自引用结构,我_在原始结构的名称前加上an 前缀:
typedef struct _Node {
_Node *next;
} Node;
Run Code Online (Sandbox Code Playgroud)