当前位置: 首页 > article >正文

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++ 标准版本的值。

示例代码

#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;
}

输出示例

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__等


http://www.kler.cn/a/538538.html

相关文章:

  • 人工智能浪潮下脑力劳动的变革与重塑:挑战、机遇与应对策略
  • 大数据项目2a:基于spark的电影推荐和分析系统设计与实现
  • ssti学习笔记(服务器端模板注入)
  • mybatis 是否支持延迟加载?延迟加载的原理是什么?
  • HTML 颜色值
  • 认识O(NlogN)的排序
  • 并发编程 - 线程同步(五)之原子操作Interlocked详解二
  • C语言【基础篇】之数组——解锁多维与动态数组的编程奥秘
  • ASP.NET Core 使用 WebClient 从 URL 下载
  • Linux进阶——搭建http静态网站
  • Chatbox+阿里云免费秘钥打造专属自己的deepseek桌面客户端
  • 多智能体协作架构模式:驱动传统公司向AI智能公司转型
  • 如何利用Java和Kotlin实现动态网页内容抓取
  • 深度学习之CycleGAN算法解析
  • 前端布局与交互实现技巧
  • Redis05 - 性能调优和缓存问题
  • webpack配置之---上下文
  • 华为交换机堆叠配置
  • E卷-服务器广播-需要广播的服务器数量-(200分)
  • 爬虫必备 -> Selenium【详解篇】(下)
  • 一口气入门前端——HTML5入门
  • 机器学习数学基础:14.矩阵的公式
  • CloudPaste:基于 Cloudflare Workers 的在线剪贴板和文件分享服务
  • Vim 多窗口编辑及文件对比
  • python_json转yolo文件
  • 伪分布式Spark3.4.4安装