struct无需声明即可访问?

时间:2013-11-20 09:35:33

标签: c struct compiler-flags

我有以下代码

#ifdef ENV_TI
typedef struct timespecT
{
    Uint32 tv_sec;
    Uint32 tv_nsec; 
}timespec;
#endif
#ifndef ENV_TI
struct timespec currentTime; // This Line
#else 
timespec currentTime;
#endif

如果我没有定义currentTime标志并且ENV_TI标志下定义了timespec,那么ENV_TI如何可以访问?

我在 Linux gcc 编译器上运行此代码。

2 个答案:

答案 0 :(得分:2)

struct timespec是一个用于例如Linux,请参阅the manual page for clock_gettime()。您可以通过在支持它的系统上执行#include <time.h>来获取类型声明。根据手册页,这是POSIX标准功能。

我认为您正在查看的代码是使用#ifdef来声明本机不支持它的环境的类型。

答案 1 :(得分:0)

timespec也是 time.h

中定义的结构的名称