?关于UNICODE的几个问题?

???????关于UNICODE的几个小问题????????
1,我在MSDN上查TCHAR,却看到_TCHAR, 用doto definition看是char类型的,他这样做什么意思?为什么多出这么一个定义?
2,_TCHAR *str = _T("Astring");
这里的_T什么意思??
3,我这样做可以:
char qq[10] = "abcdefg";

但这样为什么不可以?
TCHAR qq[10] = L"abcdefg";

------解决方案--------------------
1、TCHAR是根据编译选项来决定是宽字符还是窄字符,_UNICODE或_MBCS
2、_T是宏,如果编译选项为_UNICODE,则在括号的字符串前加L
------解决方案--------------------
在UNICODE工程中才可以
------解决方案--------------------
楼主的问题和我上次想得差不多,看下面的链接吧(我在5楼的回复),你自己再看仔细就应该是这样了,VC++里有太多的条件编译

http://topic.csdn.net/u/20071119/21/c9049391-a306-4822-9eca-75133acf4ee3.html