C宏文件命名约定
C macro file naming convention
我想要一些关于命名仅包含宏的 C 文件的建议。
假设我正在实施 struct My_obj
。 header 文件将是:
my_obj.h:
#ifndef MY_OBJ_H
#define MY_OBJ_H
struct My_obj {
/* ... */
};
void my_obj_do_something( struct My_obj *o );
/* ... */
#endif
现在,我有一堆宏可以帮助处理这个结构。 一些 其他文件可能想要使用它们,但它们与每个人都不相关并且会使 header 混乱。我把它们都放在另一个文件中:
my_obj.macros.h:
#ifndef MY_OBJ_MACROS_H
#define MY_OBJ_MACROS_H
#define MY_OBJ_GENERATE_CODE_1_OF_MANY( OBJ ) \
/* ... */
#endif
源代码包括 header 和宏文件,并使用它们生成实际代码:
my_obj.c:
#include "my_obj.h"
#include "my_obj.macros.h"
void my_obj_do_something( struct My_obj *o ) {
MY_OBJ_GENERATE_CODE_X( o );
/* ... */
}
/* ... */
我的问题是:这是不是经常出现的模式,这种宏文件通常命名是什么?当我 ls
时,*.macros.h
看起来有点笨拙,所以我想知道是否有这样的约定。我遇到的最接近的是 .def
扩展名,但它在这里并不准确,因为该文件在包含时不会生成代码。有什么想法吗?
经常使用后缀 "helper"、"utility" 或 "tools",如 "my_obj_utility.h",或在额外的目录中更好 "utilities".
您可以将文件命名为 my_obj.macro
。扩展名不是 .h
并不意味着您不能 #include
它。
我想要一些关于命名仅包含宏的 C 文件的建议。
假设我正在实施 struct My_obj
。 header 文件将是:
my_obj.h:
#ifndef MY_OBJ_H
#define MY_OBJ_H
struct My_obj {
/* ... */
};
void my_obj_do_something( struct My_obj *o );
/* ... */
#endif
现在,我有一堆宏可以帮助处理这个结构。 一些 其他文件可能想要使用它们,但它们与每个人都不相关并且会使 header 混乱。我把它们都放在另一个文件中:
my_obj.macros.h:
#ifndef MY_OBJ_MACROS_H
#define MY_OBJ_MACROS_H
#define MY_OBJ_GENERATE_CODE_1_OF_MANY( OBJ ) \
/* ... */
#endif
源代码包括 header 和宏文件,并使用它们生成实际代码:
my_obj.c:
#include "my_obj.h"
#include "my_obj.macros.h"
void my_obj_do_something( struct My_obj *o ) {
MY_OBJ_GENERATE_CODE_X( o );
/* ... */
}
/* ... */
我的问题是:这是不是经常出现的模式,这种宏文件通常命名是什么?当我 ls
时,*.macros.h
看起来有点笨拙,所以我想知道是否有这样的约定。我遇到的最接近的是 .def
扩展名,但它在这里并不准确,因为该文件在包含时不会生成代码。有什么想法吗?
经常使用后缀 "helper"、"utility" 或 "tools",如 "my_obj_utility.h",或在额外的目录中更好 "utilities".
您可以将文件命名为 my_obj.macro
。扩展名不是 .h
并不意味着您不能 #include
它。