C语言时间相关宏定义

在C语言中,预处理器提供了一些与时间相关的宏定义,用于在编译时获取日期、时间等信息。除了 __TIMESTAMP____DATE__,还有以下相关的宏定义:

  1. __DATE__

    当前编译日期的字符串,格式为 "Mmm dd yyyy"(例如 "Oct 10 2023")。

  2. __TIME__

    当前编译时间的字符串,格式为 "hh:mm:ss"(例如 "14:30:00")。

  3. __TIMESTAMP__

    当前源文件的最后修改日期和时间,格式为 "Mmm dd yyyy hh:mm:ss"(例如 "Oct 10 2023 14:30:00")。

  4. __FILE__

    当前源文件的文件名(字符串)。

  5. __LINE__

    当前代码行的行号(整数)。

  6. __func__ (C99 标准引入)

    当前函数的名称(字符串)。

  7. __STDC__

    如果编译器遵循 ANSI C 标准,则定义为 1

  8. __STDC_VERSION__

    表示编译器遵循的 C 标准版本(例如,C99 为 199901L,C11 为 201112L)。

  9. __cplusplus (C++ 中)

    如果编译的是 C++ 代码,则定义为一个表示 C++ 标准版本的值。

示例代码

c 复制代码
#include <stdio.h>

int main() {
    printf("Date: %s\n", __DATE__);
    printf("Time: %s\n", __TIME__);
    printf("Timestamp: %s\n", __TIMESTAMP__);
    printf("File: %s\n", __FILE__);
    printf("Line: %d\n", __LINE__);
    printf("Function: %s\n", __func__);
    printf("STDC: %d\n", __STDC__);
    printf("STDC Version: %ld\n", __STDC_VERSION__);
    return 0;
}

输出示例

c 复制代码
Date: Oct 10 2023
Time: 14:30:00
Timestamp: Oct 10 2023 14:30:00
File: example.c
Line: 10
Function: main
STDC: 1
STDC Version: 201112

这些宏定义在调试、日志记录和版本信息记录中非常有用。

reference: 系统常用宏定义__TIME__ DATE __LINE__等

相关推荐
开-悟23 分钟前
嵌入式编程-使用AI查找BUG的启发
c语言·人工智能·嵌入式硬件·bug
Natsume17105 小时前
嵌入式开发:GPIO、UART、SPI、I2C 驱动开发详解与实战案例
c语言·驱动开发·stm32·嵌入式硬件·mcu·架构·github
shaun20016 小时前
华为c编程规范
c语言
MeshddY6 小时前
(超详细)数据库项目初体验:使用C语言连接数据库完成短地址服务(本地运行版)
c语言·数据库·单片机
森焱森7 小时前
无人机三轴稳定化控制(1)____飞机的稳定控制逻辑
c语言·单片机·算法·无人机
凌肖战7 小时前
力扣网C语言编程题:快慢指针来解决 “寻找重复数”
c语言·算法·leetcode
猫猫的小茶馆10 小时前
【STM32】预分频因子(Prescaler)和重装载值(Reload Value)
c语言·stm32·单片机·嵌入式硬件·mcu·51单片机
JeffersonZU10 小时前
Linux/Unix文件IO(文件描述符、原子操作、文件数据结构、open、read、write、fcntl、dup)
linux·c语言·unix·gnu
智者知已应修善业14 小时前
【51单片机用数码管显示流水灯的种类是按钮控制数码管加一和流水灯】2022-6-14
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
森焱森1 天前
无人机三轴稳定控制(2)____根据目标俯仰角,实现俯仰稳定化控制,计算出升降舵输出
c语言·单片机·算法·架构·无人机