c - 用 C 管理系统范围的参数

标签 c parameters

我正在开发一个包含许多进程的系统,这些进程必须了解系统的许多配置、选项和数据。为此,我实现了一个共享对象,该对象使用指向参数及其数据的共享内存块的指针。参数的数据是类型、值、默认值、获取/设置函数等。基本上,数据位于一种查找表中。 这个共享对象有一些获取/设置这些参数的函数,因此系统中的所有进程都可以获取/设置这些参数。我对参数代码有很多定义,每个参数也有很多可能性,例如,一个代码可以是浮点值,另一个代码可以是整数数组。您只能想象包含所有 switch 和 case 的代码的复杂性..

我的问题是:

这种做法对于处理系统范围的参数和配置是否正确?为了速度和效率,我不想使用数据库文件,我必须将数据保存在 RAM 中。我考虑过将查找表移至内存数据库中,但处理时间至关重要,我不想浪费时间构建 SQL 语句并编译它们。关于什么是最好的方法有什么想法吗?

最佳答案

您的程序设计听起来不错,因为参数被正确封装在一个单独的文件中,声明为静态并且只能通过 set/get 函数访问。然后,用于访问数据的代码以及任何潜在的线程安全代码都可以放置在同一个文件中,并对调用者隐藏。

何时将参数保存在 RAM 或数据库中最有意义,实际上仅取决于您需要可用数据的速度。听起来这不适合您,因为数据库的访问速度自然会变慢。如果您有多个客户端需要访问数据,那么实现数据库更有意义,但这里的情况似乎并非如此。

关于c - 用 C 管理系统范围的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27244003/

相关文章:

c - 如何获取源端口号十进制形式

c - Windows中的系统调用

delphi - 方法在实现中是否有可能丢失参数?

c - 带有数组的段错误(核心转储)C 程序

c - 以二进制形式打印文件(1 和 0)

c - 我应该使用什么数据类型来打印像 64.432785439 这样的数字?

python - 在 Python 函数中使用输入语句作为参数

c++ - 向构造函数调用添加括号会导致 xlc C++ 编译器出现重复参数错误

sql - 如何在存储过程中调用存储过程(带2个参数)?

swift - 如何在swift中生成带有参数的QRCode图像?