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】:

没有实际区别。 CHARchar 的 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?;?

C语言中signed char和char有啥区别? [复制]

mysql中char和varchar有啥区别?

Char和VarChar有啥区别[重复]

char和varchar有啥区别

matlab中的num2str函数和char函数在用法上有啥本质区别呀?