一种程序参数加载方法、装置、设备及存储介质制造方法及图纸

技术编号:38079532 阅读:8 留言:0更新日期:2023-07-06 08:46
本申请公开了一种程序参数加载方法、装置、设备及存储介质,涉及计算机技术领域,包括:获取在程序开发过程中需要设置的所有参数得到程序运行参数,并确定所述程序运行参数的类型及各种所述类型涉及的参数信息;利用宏定义将各种所述类型和涉及的所述参数信息统一声明在一个头文件中;在预编译时,通过编译器将所述头文件中的所述类型使用的宏标识符定义为具体的解析代码,以便通过调用所述解析代码对待加载的所述程序运行参数进行加载。本申请通过宏定义及预编译功能来统一定义程序运行参数,能够实现在开发维护中,只在一处修改参数,从而简化了参数流程,有效避免了多处修改导致的各种问题,降低了程序开发过程中参数相关的开发和维护成本。相关的开发和维护成本。相关的开发和维护成本。

【技术实现步骤摘要】
一种程序参数加载方法、装置、设备及存储介质


[0001]本申请涉及计算机
,特别涉及一种程序参数加载方法、装置、设备及存储介质。

技术介绍

[0002]目前,在程序开发过程中,对程序运行参数的设置必不可少,一般需要预先在代码中设置默认值,然后从配置文件中读取实际值,如果是模块化的组件代码(如SDK(Software Development Kit,软件开发工具包)),还需要提供在初始化时设置参数的方式;如果是服务程序,还需要支持命令行参数。
[0003]针对程序运行参数的设置,至少需要实现以下内容:在代码中:需要写明参数枚举值、参数默认值、参数说明、最大值、最小值等内容,并实现从配置文件、初始化参数、命令行参数中将参数名与参数枚举值对应保存,以及通过参数枚举值获取实际数值;在配置文件中:需要写明参数名、参数默认值、参数说明等内容;在初始化参数和命令行参数中:需要写明参数名、参数默认值、参数说明等内容。当需要添加或修改一个参数时,必须修改该参数涉及的多个地方,而任何一处被遗漏或拼写错误,都会导致程序不能按预期执行,但并不会有编译错误提示,从而导致问题的发现和排查都较困难。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供一种程序参数加载方法、装置、设备及存储介质,能够实现在开发维护中,只在一处修改参数,从而简化了参数流程,有效避免了多处修改导致的各种问题,降低了程序开发过程中参数相关的开发和维护成本。其具体方案如下:
[0005]第一方面,本申请公开了一种程序参数加载方法,包括:
[0006]获取在程序开发过程中需要设置的所有参数,得到程序运行参数,并确定所述程序运行参数的类型及各种所述类型涉及的参数信息;
[0007]利用宏定义将各种所述类型和涉及的所述参数信息统一声明在一个头文件中;
[0008]在预编译时,通过编译器将所述头文件中的所述类型使用的宏标识符定义为具体的解析代码,以便通过调用所述解析代码对待加载的所述程序运行参数进行加载。
[0009]可选的,所述通过编译器将所述头文件中的所述类型使用的宏标识符定义为具体的解析代码之后,还包括:
[0010]将所述程序运行参数的参数值放入到对应的所述类型的map中,以便从所述map中获取所述参数值。
[0011]可选的,所述将所述程序运行参数的参数值放入到对应的所述类型的map中,以便从所述map中获取所述参数值,包括:
[0012]将所述程序运行参数的参数值为key的方式放入到对应的所述类型的map中,以便通过以所述key为入参的Get方式从所述map中获取所述参数值。
[0013]可选的,所述将所述程序运行参数的参数值为key的方式放入到对应的所述类型
的map中,包括:
[0014]按照一致的规则对所述程序运行参数进行解析,得到参数值,并将所述参数值为key的方式放入到对应的所述类型的map中。
[0015]可选的,所述程序参数加载方法,还包括:
[0016]当监测到对所述程序运行参数进行添加或修改后,利用基于宏定义编写的工具程序自动添加或修改相应的参数说明和配置文件。
[0017]可选的,所述利用宏定义将各种所述类型和涉及的所述参数信息统一声明在一个头文件中,包括:
[0018]利用宏定义将各种所述类型和涉及的所述参数信息统一声明在头文件param_define.h中。
[0019]可选的,所述通过编译器将所述头文件中的所述类型使用的宏标识符定义为具体的解析代码,包括:
[0020]判断所述头文件中的所述类型使用的宏标识符是否处于已定义状态,若是则通过编译器将所述宏标识符定义为具体的解析代码。
[0021]第二方面,本申请公开了一种程序参数加载装置,包括:
[0022]参数获取模块,用于获取在程序开发过程中需要设置的所有参数,得到程序运行参数;
[0023]类型及信息确定模块,用于确定所述程序运行参数的类型及各种所述类型涉及的参数信息;
[0024]声明模块,用于利用宏定义将各种所述类型和涉及的所述参数信息统一声明在一个头文件中;
[0025]定义模块,用于在预编译时,通过编译器将所述头文件中的所述类型使用的宏标识符定义为具体的解析代码;
[0026]程序运行参数加载模块,用于通过调用所述解析代码对待加载的所述程序运行参数进行加载。
[0027]第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述的程序参数加载方法。
[0028]第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述的程序参数加载方法。
[0029]可见,本申请先获取在程序开发过程中需要设置的所有参数得到程序运行参数,并确定所述程序运行参数的类型及各种所述类型涉及的参数信息,然后利用宏定义将各种所述类型和涉及的所述参数信息统一声明在一个头文件中;在预编译时,通过编译器将所述头文件中的所述类型使用的宏标识符定义为具体的解析代码,以便通过调用所述解析代码对待加载的所述程序运行参数进行加载。本申请通过宏定义及预编译功能来统一定义程序运行参数,能够实现在开发维护中,只在一处修改参数,从而简化了参数流程,有效避免了多处修改导致的各种问题,降低了程序开发过程中参数相关的开发和维护成本。
附图说明
[0030]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0031]图1为本申请公开的一种程序参数加载方法流程图;
[0032]图2为本申请公开的一种具体的参数宏定义统一声明示例代码示意图;
[0033]图3为本申请公开的一种具体的枚举类型定义示例代码示意图;
[0034]图4为本申请公开的一种从ini配置文件中获取参数示例代码示意图;
[0035]图5为本申请公开的一种具体的生成ini配置文件的示例代码示意图;
[0036]图6为本申请公开的一种具体的生成的ini配置文件内容示意图;
[0037]图7为本申请公开的一种具体的程序参数加载方法流程图;
[0038]图8为本申请公开的一种程序参数加载装置结构示意图;
[0039]图9为本申请公开的一种电子设备结构图。
具体实施方式
[0040]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0041]本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序参数加载方法,其特征在于,包括:获取在程序开发过程中需要设置的所有参数,得到程序运行参数,并确定所述程序运行参数的类型及各种所述类型涉及的参数信息;利用宏定义将各种所述类型和涉及的所述参数信息统一声明在一个头文件中;在预编译时,通过编译器将所述头文件中的所述类型使用的宏标识符定义为具体的解析代码,以便通过调用所述解析代码对待加载的所述程序运行参数进行加载。2.根据权利要求1所述的程序参数加载方法,其特征在于,所述通过编译器将所述头文件中的所述类型使用的宏标识符定义为具体的解析代码之后,还包括:将所述程序运行参数的参数值放入到对应的所述类型的map中,以便从所述map中获取所述参数值。3.根据权利要求2所述的程序参数加载方法,其特征在于,所述将所述程序运行参数的参数值放入到对应的所述类型的map中,以便从所述map中获取所述参数值,包括:将所述程序运行参数的参数值为key的方式放入到对应的所述类型的map中,以便通过以所述key为入参的Get方式从所述map中获取所述参数值。4.根据权利要求3所述的程序参数加载方法,其特征在于,所述将所述程序运行参数的参数值为key的方式放入到对应的所述类型的map中,包括:按照一致的规则对所述程序运行参数进行解析,得到参数值,并将所述参数值为key的方式放入到对应的所述类型的map中。5.根据权利要求1所述的程序参数加载方法,其特征在于,还包括:当监测到对所述程序运行参数进行添加或修改后,利用基于宏定义编写的工具程序自动添加或...

【专利技术属性】
技术研发人员:孟丹丹
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1