C/C++ 程序内获取编译时间

最近更新于 2024-10-30 12:51

Table of Contents

测试环境

Visual Studio 2022

方案

C/C++ 中有 __DATE____TIME__ 两个预定义宏,分别为日期和时间,在程序内作为字符串使用就行。编译器预处理的时候就会获取日期和时间填进去作为常量字符串。
file

不过这两个字符串都不是宽字符串,在一些特别的情景下,比如 Windows API 系列的项目中,普遍要使用宽字符串。
file

参考

#include <cstdio>

#define charStringToWideCharString(s)           L##s
#define CSTWCS(s)                               charStringToWideCharString(s)
#define WDATE                                   CSTWCS(__DATE__)
#define WTIME                                   CSTWCS(__TIME__)

int main()
{
    wprintf(L"%s %s\n", WDATE, WTIME);
}

file

C/C++ 程序内获取编译时间
Scroll to top