C宏文件命名约定

时间:2015-12-29 01:09:19

标签: c macros

我想要一些关于命名只包含宏的C文件的建议。

假设我正在实施struct My_obj。头文件将是:
my_obj.h

#ifndef MY_OBJ_H
#define MY_OBJ_H

struct My_obj {  
  /* ... */  
};  

void my_obj_do_something( struct My_obj *o );  
/* ... */  

#endif

现在,我有一堆宏来帮助处理这个结构。 某些其他文件可能想要使用它们,但它们与每个人都不相关,并且会使标题混乱。我把它们全部放在另一个档案中:
my_obj.macros.h

#ifndef MY_OBJ_MACROS_H
#define MY_OBJ_MACROS_H

#define MY_OBJ_GENERATE_CODE_1_OF_MANY( OBJ ) \
/* ... */  

#endif  

源包括标头和宏文件,并使用它们生成实际代码:
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 );
  /* ... */
}
/* ... */

我的问题是:这是一种经常出现的模式吗?这样的宏文件通常是什么名字?我*.macros.hls看起来有点笨拙,所以我想知道是否有这样的惯例。我遇到的最接近的是.def扩展名,但这里不准确,因为此文件在包含时不会生成代码。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

后缀"帮助","实用程序"或"工具"经常被使用,例如" my_obj_utility.h",或者更好地使用额外的目录"实用程序"。

答案 1 :(得分:-1)

您可以将文件命名为my_obj.macro。仅仅因为扩展程序不是.h并不意味着你不能#include它。