当前位置: C语言 -- 专题 -- 语言环境

语言环境

C语言支持本地化设置,例如:支持特定国家的货币、时间格式、数字格式等。C编译器通常至少会提供两种语言环境:"C"语言环境("C" locale)和系统默认语言环境(system's default locale)。


1、"C"语言环境

"C"语言环境是C程序开始的语言环境,也是编译C程序的最小语言环境;在所有系统和编译器上该语言环境的设置是相同的,因此在该语言环境下程序的运行结果是可以预测的。"C"语言环境也是C程序的默认语言环境。


2、系统默认语言环境

系统默认语言环境是应用程序运行环境提供的语言环境,它比"C"语言环境提供更多的本地化信息。


下面通过一个具体的例子讨论一下这两个语言环境。

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
/*语言环境*/

#include <locale.h>
#include <stdio.h>

void func(void);

int main(void)
{
    func();

    setlocale(LC_ALL, "");	//将当前语言环境设置为系统默认语言环境。
    func();

    return 0;
}

void func(void)
{
    struct lconv *lc = localeconv();

    printf("Current locale: %s\n", setlocale(LC_ALL, NULL));
    printf("International currency symbol: %s\n\n", lc->int_curr_symbol);
}

将输出:

Current locale: C

International currency symbol:

 

Current locale: Chinese (Simplified)_China.936

International currency symbol: CNY

C程序开始时语言环境是"C"语言环境;通过setlocale(LC_ALL, "");语句,将当前语言环境设置为系统默认语言环境。