为什么有些POSIX结构成员有反映结构名称的前缀?

时间:2015-11-06 19:06:17

标签: c struct posix

POSIX中定义的某些(全部?)结构的成员似乎有反映包含它们的结构名称的前缀,如下所示:

struct timeval {
    time_t      tv_sec;     /* seconds */
    suseconds_t tv_usec;    /* microseconds */
};
struct timezone {
    int tz_minuteswest;     /* minutes west of Greenwich */
    int tz_dsttime;         /* type of DST correction */
};

但与enum不同,struct不会将其成员注入外部范围。那么为什么要有这些结构呢?以tv_tz_前缀命名的成员?如果它们被定义为这样可能会出错:

struct timeval {
    time_t      sec;
    suseconds_t usec;
};
struct timezone {
    int minuteswest;
    int dsttime;
};

是否有一些C实现,它们将结构成员名称注入外部作用域,或者这些前缀有什么用途?

0 个答案:

没有答案