我的生产代码样机:
/* version 1 */
#include <stdio.h>
FILE** fout = &stdout;
int main() {
fprintf( *fout, "hello\n" );
}
在 gcc 下工作正常,但据报道无法在 mingw 下编译(需要左值作为一元 '&' 操作数)。
我已经看到设置 FILE* 等于 stdout 便携吗?; 我明白那个
/* version 2 */
#include <stdio.h>
int main() {
FILE* fout = stdout;
fprintf( fout, "hello\n" );
}
将是完全有效的。但是,我需要预设一个全局变量。很遗憾,
/* version 3 */
#include <stdio.h>
FILE* fout = stdout;
int main() {
fprintf( fout, "hello\n" );
}
不适合替换版本1;它甚至不能在 gcc 下编译(第 2 行:初始化元素不是常量)。
知道如何将标准输出放入在 main() 开始之前初始化的变量中吗?