Ищем определение "COMPILE_WPRINTF` - PullRequest
0 голосов
/ 14 декабря 2018

Я просматривал исходный код реализации glibc printf подобных функций, таких как vsnprintf, fprintf, vfprintf и так далее, все они включали #ifndef COMPILE_WPRINTF или #ifdef COMPILE_WPRINTF.

Пытался искать определения COMPILE_WPRINTF онлайн, но вышел пустым.Я полагаю, что это как-то связано с широким типом символов wchar_t (отсюда W в COMPILE_WPRINTF?), Поскольку, например, vfprintf включает следующий код:

#ifndef COMPILE_WPRINTF
...
# define CHAR_T     char
...
#else
...
# define CHAR_T     wchar_t

Но мне очень любопытно узнать, где \ когда это определение определено, может кто-то указать мне на это?

1 Ответ

0 голосов
/ 14 декабря 2018

stdio-common/vfwprintf.c выглядит следующим образом:

#include <wctype.h>
#define COMPILE_WPRINTF 1
#include "vfprintf.c"

По сути, stdio-common/vfprintf.c компилируется дважды (для каждого варианта сборки), один раз без определения COMPILE_WPRINTF, один раз с COMPILE_WPRINTF.Код был написан таким образом, потому что многие источники совместно используются двумя вариантами.

...