建设和会见情况变量
当前位置:以往代写 > C/C++ 教程 >建设和会见情况变量
2019-06-13

建设和会见情况变量

建设和会见情况变量

副标题#e#

情况变量的组成

情况变量由一对字符串构成,名目为:变量=关联值。譬喻:

PATH=C:\WINDOWS

在DOS和WINDOWS中,你可以从呼吁行或在批处理惩罚文件中界说情况变量,要领是利用SET呼吁,后头跟赋值表达式。下面是一个建设情况变量的例子,

SET VERSION=1.1.3

在Unix中可以省略前面的SET,写为:

VERSION=1.1.3

读取情况变量

措施只有在启动时才气会见到情况变量,情况变量由一个字符串数组组成,其形式为“VAR=value”。可以用getenv()和putenv()函数从措施中会见情况变量。

ANSI C 的函数getenv()提供了轻松轻便的会见情况变量的要领,这个函数在<stdlib.h>中声明,原型如下:

char * getenv(const char * name);

假如函数挪用乐成,它返回情况变量的字符串值。假如变量没有被界说,函数返回空(NULL)。譬喻:

#include <stdlib.h>
#include <stdio.h>
int main()
{
char * descr = getenv("PATH");
if (descr)
 printf("value of PATH is: %s", descr);
else
 printf("variable not defined");
}

配置情况变量

为了界说情况变量可能改变现存的变量值,利用putenv()函数。这个函数不是由尺度的ANSI/ISO界说的。在实际应用中,Unix和Windows都将这个函数作为非尺度扩展界说在<stdlib.h>文件中,它是可移植的。其原型如下:

int putenv(const char * var);

参数var必需是字符串,并且名目必需是“VAR=VAL”。putenv()将变量VAR添加到当前的情况变量中,并赋值VAL。假如变量已存在, putenv()包围现存的值。假如你不想包围现存变量的值,就先挪用getenv()来查抄变量是否存在,然后再挪用putenv()。下面的例子是添加一个名为TEMP的情况变量,赋值为C:\TEMP(留意反斜杠在C/C++字符串中的暗示要领)。假如挪用乐成,putenv()返回0,不然返回-1。

int stat = putenv("TEMP=C:\\TEMP");
if (!stat)
{
printf("情况变量界说失败");
}


#p#副标题#e#

支持宽字符集变量

Win32中也能界说getenv()和putenv()的宽字符集版本。留意_wputenv()利用于NT和Win2000:

wchar_t * _wgetenv(const wchar_t * name);

int _wputenv(const wchar_t * var);

情况变量的利用

情况变量的浸染就是你不消改变源文件,不消重编译便可以节制措施的行为。譬喻,你可以通过界说情况变量节制措施是否显示debug信息。,假如你需要在客户处举办debug输出,情况变量就出格有用,以下就是一个这方面的例子,假如界说了情况变量DBG:

void func();
#include <stdlib.h>
#include <stdio.h>
int main()
{
bool debug=false;
if (getenv("DBG"))
 debug=true;
if (debug)
 printf("calling func");
func();
if (debug)
 printf("returned from func");
}

    关键字:

在线提交作业