寻找 `COMPILE_WPRINTF` 的定义

Looking for the definition of `COMPILE_WPRINTF`

我正在浏览 printf 类函数的 glibc 实现的源代码,如 vsnprintffprintfvfprintf 等,所有这些都包括 #ifndef COMPILE_WPRINTF#ifdef COMPILE_WPRINTF

试图在网上查找 COMPILE_WPRINTF 的定义,但结果是空的。 我认为它与宽字符类型 wchar_t 有关(因此 COMPILE_WPRINTF 中的 W?)因为例如 vfprintf 包含以下代码:

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

但是我很好奇where\when这个定义是怎么定义的,有人可以指点一下吗?

stdio-common/vfwprintf.c 看起来像这样:

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

本质上,stdio-common/vfprintf.c 编译了两次(对于每个构建变体),一次没有定义 COMPILE_WPRINTF,一次有 COMPILE_WPRINTF。代码是这样写的,因为很多源代码在两个变体之间共享。