C语言版本号

version_build.h: 

//
// Created by cuihan on 2024/2/12.
//

#ifndef VERSION_VERSION_BUILD_H
#define VERSION_VERSION_BUILD_H

/**************编译日期定义***************/

// 定义年份
#define BUILD_YEAR_CH0 (__DATE__[7])
#define BUILD_YEAR_CH1 (__DATE__[8])
#define BUILD_YEAR_CH2 (__DATE__[9])
#define BUILD_YEAR_CH3 (__DATE__[10])

// 定义月份
#define BUILD_MONTH_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n')
#define BUILD_MONTH_FEB (__DATE__[0] == 'F')
#define BUILD_MONTH_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r')
#define BUILD_MONTH_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p')
#define BUILD_MONTH_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y')
#define BUILD_MONTH_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n')
#define BUILD_MONTH_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l')
#define BUILD_MONTH_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u')
#define BUILD_MONTH_SEP (__DATE__[0] == 'S')
#define BUILD_MONTH_OCT (__DATE__[0] == 'O')
#define BUILD_MONTH_NOV (__DATE__[0] == 'N')
#define BUILD_MONTH_DEC (__DATE__[0] == 'D')

// 判断月份
#define BUILD_MONTH_CH0 \
    ((BUILD_MONTH_OCT || BUILD_MONTH_NOV || BUILD_MONTH_DEC) ? '1' : '0')

#define BUILD_MONTH_CH1 \
    ( \
        (BUILD_MONTH_JAN) ? '1' : \
        (BUILD_MONTH_FEB) ? '2' : \
        (BUILD_MONTH_MAR) ? '3' : \
        (BUILD_MONTH_APR) ? '4' : \
        (BUILD_MONTH_MAY) ? '5' : \
        (BUILD_MONTH_JUN) ? '6' : \
        (BUILD_MONTH_JUL) ? '7' : \
        (BUILD_MONTH_AUG) ? '8' : \
        (BUILD_MONTH_SEP) ? '9' : \
        (BUILD_MONTH_OCT) ? '0' : \
        (BUILD_MONTH_NOV) ? '1' : \
        (BUILD_MONTH_DEC) ? '2' : \
          /*  default */    '?'   \
    )

// 定义日
#define BUILD_DAY_CH0 ((__DATE__[4] >= '0') ? (__DATE__[4]) : '0')
#define BUILD_DAY_CH1 (__DATE__[5])

#endif //VERSION_VERSION_BUILD_H

main.c: 

#include <stdio.h>
#include "version_build.h"

/**************程序版本定义***************/
#define VERSION_MAJOR     1    // 主版本号
#define VERSION_MINOR     2    // 次版本号
#define VERSION_REVSION   1    // 修改版本号

/**************输出格式定义***************/
const unsigned char versionInfo[] =
        {
                'V',
                VERSION_MAJOR,
                '.',
                VERSION_MINOR,
                '.',
                VERSION_REVSION,
                '_','Build',
                BUILD_YEAR_CH0, BUILD_YEAR_CH1, BUILD_YEAR_CH2, BUILD_YEAR_CH3,
                BUILD_MONTH_CH0, BUILD_MONTH_CH1,
                BUILD_DAY_CH0, BUILD_DAY_CH1,
                '\0'
        };

int main() {
    printf("\n current version is %s\n", versionInfo);
    return 0;
}

输出效果: 

 current version is V1.2.1_Build20240212

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值