MSVC 中的 char 和 CHAR 有啥区别?
Posted
技术标签:
【中文标题】MSVC 中的 char 和 CHAR 有啥区别?【英文标题】:What's the difference between char and CHAR in MSVC?MSVC 中的 char 和 CHAR 有什么区别? 【发布时间】:2011-09-15 03:40:24 【问题描述】:听说这两种类型(char 和 CHAR)在 MSVC 中是不同的,它们有什么区别?如果它们不同,建议使用哪一个?
【问题讨论】:
当我真的很生气并希望代码正常工作时,我会使用 CHAR。不过,我通常使用 char,因为我不会经常生气到打开 CAPS LOCK。 【参考方案1】:没有实际区别。 CHAR
是 char
的 typedef,它是 Windows API 的一部分,在技术上不是 MSVC。见Windows Datatypes at MSDN。
所有(以及大多数)Windows API 函数都使用在 Win32 API 头文件中定义的参数类型,而不是直接的 C 类型。我一直认为这是为了能够支持多个编译器(MSVC 并不总是 Windows 的主要 C 编译器)
【讨论】:
你的意思是CHAR
打算支持多个编译器吗?但是其他编译器在typedef中可能没有将CHAR
定义为char
,那它怎么能做到呢?
CHAR 是在 Windows API 头文件中进行类型定义的,而不是在编译器中。 CHAR 定义为 WinNT.h,如我的问题中的链接中所列。以上是关于MSVC 中的 char 和 CHAR 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
char a[] = ?string?; 有啥区别?和 char *p = ?string?;?