最近同事远程调试设备,为了定位问题临时发布了好几个版本,有些版本号改了有些没改,结果调试完,准备备份版本的时候,忘了哪个版本是最新的了
这里介绍几个比较使用的宏,把编译时间加入到执行文件中,然后再通过日志或者printf打印出来,这样运行版本的时候就能知道编译的时间了,可以作为版本号的辅助手段
__DATE__:打印编译日期
__TIME__:打印编译时间
另外几个在调试代码时非常实用
__FILE__:打印当前源码文件名
__FUNCTION__:打印当前函数名
__LINE__:打印当前源码所在的行
- #include
- #include
-
- #define DEF_VERSION "V1.0"
-
- int main(int argc, char *argv[])
- {
-
- printf("version:%s-%s-%s\n", DEF_VERSION, __DATE__, __TIME__);
- printf("file:%s funtion:%s line:%d\n", __FILE__, __FUNCTION__, __LINE__);
-
- return 0;
-
- }
执行结果
version:V1.0-Mar 13 2024-19:12:28
file:test.c funtion:main line:10