分享一种自动在C工程里插入各种编译时间格式字符串以及UTC时间变量的办法(不需要__DATE__和__TIME__)

本文介绍了一种在C语言工程中自动生成符合特定格式的编译时间和UTC时间变量的方法,以适应资源有限的单片机项目。通过编写小巧的exe程序,在编译前读取系统时间并转换为所需格式,输出到C文件中,然后由IDE编译,实现编译时间的自动化插入。提供两种用法,分别适用于不同的时间格式需求。
摘要由CSDN通过智能技术生成

C语言标准支持两个宏:__DATE__和__TIME__。但是它们的格式不一定符合特定应用场合要求:

场景1:我的一些资源很紧张的单片机工程里,可能只需要直接在小液晶模块上显示“20180813142233”这样一个字符串,任何的额外公式转换都会耗费资源。我需要在程序代码里直接自动出现一行 char *time_str = "20180813142233"。

场景2:我的一些资源很紧张的单片机工程里,可能只需要在程序末尾用最少的字节存储一个程序编译时间,这时4字节的UTC时间格式可能就是最合适的。我需要在程序代码里自动出现一行 const unsigned long amo_time_UTC = 0x5B712B7D; 需要用到时,从串口打印出来,上位机接收后用localtime()这个函数就可以解析得到对应的本地时间字符串

有些IDE可以通过脚本文件交互来生成代码插入到工程里,但是不通用。所以只能写一个小巧的exe程序,让IDE在编译前自动调用这个exe程序(我所了解的IDE都有这个调用外部程序的功能),然后exe程序自动读取windows系统时间,转换为所需的时间格式,输出到一个c文件里,最后IDE编译这个c文件,就得到编译时间了。

 

在需要引用时间的c文件开头添加一行:

#include "amo_time_string_macro.c"//该文件在工程编译前自动调用amo_time_string_macro.exe生成,包含字符串格式和UTC格式的windows系统当前时间

 

用法1(插入所有支持的时间格式):amo_time_string_mac

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值