C 语言获取当前时间

本贴最后更新于 1845 天前,其中的信息可能已经物是人非
#ifndef bl_time_h
#define bl_time_h

#include <stdint.h>

int64_t bl_time();

#endif
#include "bl_time.h"

#if defined(WIN32) && !defined(__cplusplus)
#define inline __inline
#endif

#ifdef WIN32
#include <Windows.h>
#else
#include <sys/time.h>
#endif

#ifdef WIN32
inline void set_low(int64_t* value, int low)    {
	*value &= (int64_t)0xffffffff << 32;
	*value |= (int64_t)(uint64_t)(uint32_t)low;
}

inline void set_high(int64_t* value, int high)    {
	*value &= (int64_t)(uint64_t)(uint32_t)0xffffffff;
	*value |= (int64_t)high << 32;
}

inline int64_t int64_t_from(int h, int l) {
	int64_t result = 0;
	set_high(&result, h);
	set_low(&result, l);
	return result;
}

static int64_t  _offset = 116444736000000000;

int64_t offset() {
	return _offset;
}

int64_t bl_time()
{
	FILETIME wt;
	GetSystemTimeAsFileTime(&wt);
	return (int64_t_from(wt.dwHighDateTime, wt.dwLowDateTime) - offset()) / 10000;
}
#else
int64_t bl_time()
{
	struct timeval tv;
	gettimeofday(&tv, NULL);
	return tv.tv_sec * (uint64_t)1000000 + tv.tv_usec;
}
#endif
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    62 引用 • 163 回帖 • 364 关注

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...