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实现,它们将结构成员名称注入外部作用域,或者这些前缀有什么用途?