万恶的linux -- 雷人大发现, multi-byte与unicode函数族互不兼容
今天在linux下碰到一个十分奇怪的bug, 最后发现竟然是unicode与multi-byte的函数相互排斥, 比如下面的程序
int main()
{
printf("output multi-byte string.\n");
wprintf(L"output unicode string.\n");
}
则只输出:output multi-byte string.
相反下面的代码
int main()
{
wprintf(L"output unicode string.\n");
printf("output multi-byte string.\n");
}
则只输出:output unicode string.
决定因素为multi-byte及unicode函数族谁最先被编译, 这是在是太雷人了!!!
而在VC下则可以同时使用printf及wprintf.
有人能站出来解释下么?