typedef struct ndmp_lbr_params {
struct ndmpd_session *nlp_session;
int nlp_flags;
ndmp_backup_params_t bk_params;
ndmp_restore_params_t rs_params;
#define nlp_backup_path bk_params.bk_path
#define nlp_llevel bk_params.bk_llevel
#define nlp_ldate bk_params.bk_ldate
#define nlp_clevel bk_params.bk_clevel
#define nlp_tokseq nlp_clevel
#define nlp_tokdate nlp_ldate
#define nlp_cdate bk_params.bk_cdate
#define nlp_bkmap bk_params.bk_map
#define nlp_bkdirino bk_params.bk_dirino
#define nlp_dmpnm bk_params.bk_dmpnm
#define nlp_exl bk_params.bk_exl
#define nlp_inc bk_params.bk_inc
.....
}
查阅资料加个人理解: 宏定义在预编译的时候就会被替换掉,因此可以当做给变量换个名字。
至于目的:大概是为了格式上的统一,好看好记吧。