寻找 `COMPILE_WPRINTF` 的定义
Looking for the definition of `COMPILE_WPRINTF`
我正在浏览 printf
类函数的 glibc 实现的源代码,如 vsnprintf
、fprintf
、vfprintf
等,所有这些都包括 #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
。代码是这样写的,因为很多源代码在两个变体之间共享。
我正在浏览 printf
类函数的 glibc 实现的源代码,如 vsnprintf
、fprintf
、vfprintf
等,所有这些都包括 #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
。代码是这样写的,因为很多源代码在两个变体之间共享。