Visual Studio 有一个大小和距离规范图表,说明我可以做这样的事情,使用 h 前缀来指定单字节字符串,而不管 printf 或 wprintf:
int main()
{
char test[]= "abc";
_tprintf(_T("%hs\n"),test);
}
但是,如果我用 mingw gcc 和 -Wall 编译相同的东西,我会收到以下警告:
warning: format '%hs' expects type 'short int *', but argument 2 has type 'char *'
我正在做的事情是在 mingw 中指定单字节字符串的可接受方式吗?
谢谢
编辑-这个问题已经在下面得到了相当详细的回答。简短的回答是肯定的,这是在 mingw 中指定单字节字符串的可接受方式,并且可以忽略警告。