C标准库源码解剖(10):区域设置函数locale.h

来源:互联网 发布:卫衣品牌 知乎 编辑:程序博客网 时间:2024/04/29 16:38

    国家、文化和语言规则集称为区域设置,locale.h头文件中定义了区域设置相关的函数。setlocale函数用于设置或返回当前的区域特性,localeconv用于返回当前区域中的数字和货币信息(保存在struct lconv结构实例中)。setlocale的第一个实参指定要改变的区域行为类别,预定义的setlocale类别有:
    LC_ALL:所有行为。
    LC_COLLATE:strcoll和strxfrm函数的行为。
    LC_CTYPE:ctype.h中的字符串处理函数行为。
    LC_MONETARY:localeconv返回的币值信息。
    LC_NUMERIC:localeconv返回的小数点和非币值信息。
    LC_TIME:strftime函数的行为。
    locale.h中内容如下:

    setlocale函数的实现代码比较复杂,这里就不解剖了。localeconv函数的代码比较简单,它先创建一个struct lconv实例result用来保存返回的信息,然后用编译器的内部宏来获取数字和货币的各个成员值,存入result中,然后返回。如下:

原创粉丝点击