来自Ubuntu手册页stdin(3)
:
extern FILE *stdout;
来自mingw64 stdio.h
文件:
#define stdout (&__iob_func()[1])
两者都表明stdout
(一个指针)的值不能被认为是常数。
我仍然可以依靠这样的工作:
FILE * stream;
// early after startup
stream = stdout;
// much later, far down the stack, in a different function
fprintf(stream, "%s", "fprintf(stream, \"");
这就是C11标准所说的(§7.21.1-3)(我自己的口音):
标准错误 标准输入 标准输出 它是“指向FILE的指针”类型的表达式,它们分别指向与标准错误,输入和输出流相关联的FILE对象。