问题描述
- 请大神回答一下以下写法对吗?
-
const unsigned char tSuitLetter = _T('?');这个写法对吗?
解决方案
可以,在VS2013环境下以下程序没问题
// ConsoleApplication1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
const unsigned char tSuitLetter = _T('A');
printf("%c", tSuitLetter);
return 0;
}
解决方案二:
不对 char型的话应该是一个字符,等号右边赋值不对
解决方案三:
以下代码在 VS2008 中编译通过,编译时要注意工程属性选项中:常规->字符集的不同设置。
int _tmain(int argc, _TCHAR* argv[])
{
const unsigned char tSuitLetter = _T('A'); // _T('A') 在 Unicode 模式下占用两个字节,虽然可以被赋值给 unsigned char,但含义不一样的
const TCHAR tcSuitLetter = _T('A'); // 在内存中是 0x41 0x00
printf("%c,%c", tSuitLetter,tcSuitLetter);
return 0;
}
时间: 2024-08-29 01:48:24