寻找「COMPILE_WPRINTF」的定义

时间:2018-12-14 11:42:22

标签: c gnu libc

我正在浏览printf之类的函数的glibc实现的源代码,例如vsnprintffprintfvfprintf等,它们都包含{{1} }或#ifndef COMPILE_WPRINTF

试图在网上查找#ifdef COMPILE_WPRINTF的定义,但没有任何内容。 我认为这与宽字符类型COMPILE_WPRINTF有关(因此wchar_t中的W是因为),例如vfprintf包含以下代码:

COMPILE_WPRINTF

但是我很想知道在哪里定义此定义,有人可以指出吗?

1 个答案:

答案 0 :(得分:2)

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

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

本质上,stdio-common/vfprintf.c被编译两次(针对每个构建变体),一次未定义COMPILE_WPRINTF,一次被COMPILE_WPRINTF。之所以这样编写代码,是因为两个变体之间共享许多源。