|
#include <time.h>定義は後述。
#include <ctime>定義は後述。
namespace std {
typedef 処理系依存 time_t;
}
typedef __time_t time_t;stddef.h → sys/_types.h → machine/_types.h と間接的に呼ばれた /usr/include/machine/_types.h で、次のように定義される。
typedef int __int32_t;(32ビットFreeBSDの場合)
typedef long __int64_t;
typedef __int32_t __time_t;(64ビットFreeBSDの場合)
typedef __int64_t __time_t;FreeBSDでは、間接的にintまたはlongで定義される。もって64ビット版ではtime_tは64ビット化されている。
typedef __kernel_time_t time_t;__kernel_size_tの定義は環境ごとに様々であるが、代表的な環境(x86とARM)では次のようになっている。
typedef long __kernel_time_t;x86の64ビットの場合、arch/x86/include/asm/posix_types_64.h で定義される。
typedef long __kernel_time_t;ARMの32ビットの場合、arch/arm/include/asm/posix_types.h で定義される。
typedef long __kernel_time_t;概ね、32ビット環境/64ビット環境問わずlongで間接的に定義されるようになっている。もってtime_tは64ビット環境において64ビット化されている。
# define __STD_TYPE __extension__ typedef (32ビットの場合)/usr/include/bits/typesizes.h
# define __STD_TYPE typedef (64ビットの場合)
__STD_TYPE __TIME_T_TYPE __time_t;
#define __TIME_T_TYPE __SLONGWORD_TYPE/usr/include/bits/types.h
#define __SLONGWORD_TYPE long intLINUXでは、32ビット/64ビット問わず、間接的にlongで定義される。もってtime_tは64ビット環境において64ビット化されている。