/* 1, если символ валюты перед положит, значением, 0, если после. */
char p_cs_precedes;
/* 1,
если символ валюты отделяется от положит, значения пробелом. */
char p_sep_by_space;
/* 1, если символ валюты перед отриц. значением, 0, если после. */
char n_cs_precedes;
/* 1, если символ валюты отделяется от отриц. значения пробелом. */
char n_sep_by_space;
/* Размещение положительного и отрицательного знака:
0 Количество и символ валюты окружены скобками.
1 Строка знака перед количеством и символом валюты.
2 Строка знака за количеством и символом валюты.
3 Строка знака непосредственно перед символом валюты.
4 Строка знака непосредственно после символа валюты. */
char p_sign_posn;
char n_sign_posn;
/* 1, если int_curr_symbol до положит. значения, 0, если после. */
char int_p_cs_precedes;
/* 1, если int_curr_symbol отделен от положит, знач. пробелом. */
char int_p_sep_by_space;
/* 1, если int_curr_symbol перед отриц. значением, 0, если после. */
char int_n_cs_precedes;
/* 1, если int_curr_symbol отделен от отриц. знач. пробелом. */
char int_n_sep_by_space;
/* Размещение положительного и отрицательного знака:
0 Количество и int_curr_symbol окружены скобками.
1 Строка знака до количества и int_curr_symbol.
2 Строка знака после количества и int_curr_symbol.
3 Строка знака непосредственно до int_curr_symbol.
4 Строка знака непосредственно после int_curr_symbol. */
char int_p_sign_posn;
char int_n_sign_posn;
};
Комментарии показывают довольно ясно, что происходит. Давайте посмотрим на несколько первых полей
struct lconv
:
decimal_point
Используемый символ разделителя десятичной дроби. В Соединенных Штатах и других англоязычных странах это точка, но во многих странах используется запятая.
thousands_sep
Символ, используемый для разделения каждых 3 цифр значения.
grouping
Массив однобайтных целых значений. Каждый элемент указывает, сколько цифр в группе. Как сказано в комментарии,
CHAR_MAX
означает, что дальше группировка
не используется, а 0 означает повторное использование последнего элемента (Далее в главе мы покажем пример кода.)
int_curr_symbol
Это международный символ для местной валюты. Например, 'USD' для доллара США.
currency_symbol
Локальный символ для местной валюты. Например, $ для доллара США.
mon_decimal_point
,
mon_thousands_sep
,
mon_grouping
Соответствуют предыдущим полям, предоставляя те же сведения, но для денежных сумм.
Большая часть оставшихся значений не имеет значения для повседневного программирования. Следующая программа,
ch13-lconv.c
, выводит некоторые из этих значений, чтобы дать вам представление, для какого рода сведений они используются:
/* ch13-lconv.c --- показывает некоторые компоненты struct lconv */