繁体   English   中英

外壳环境变量的全局与局部静态变量

[英]Global vs. local static variable for shell environment variables

我正在实现一个简单的shell,并且希望能够通过shell设置环境变量。 使用简单的语法,例如set var = hello

我有一个这样的结构来表示一个环境变量:

typedef struct {
    char *name;
    char *value;
}

我正在考虑创建上述结构的动态数组以容纳所有环境变量。 问题是我不确定如何正确执行此操作。

现在,我不确定是否应该在函数或全局变量中使数组静态化。 哪一个更好? 为什么呢?

这完全取决于需要从何处访问变量。 如果仅在单个函数中需要它们,则静态局部变量最有意义。 如果需要“整个文件”,那么全局文件(仍然是静态文件)最有意义。 否则,是全球性的。

另一个更适合将来扩展的选项是使用访问器函数创建一个文件静态变量集,以获取和设置名称/值组合,并在其他地方使用该API。 这样,如果您突然需要存储大量名称/值对(例如,存储在b树而不是数组中),则可以将存储机制更改为更有效的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM