GCC支持Objective C的故事
Objective-C 主要由 Stepstone 公司的Brad Cox和 Tom Love 在1980 年左右发明。乔布斯离开苹果公司后成立了NeXT STEP公司, 买下了Objective-C...
为什么苹果公司Cocoa类库有不少NS前缀?
NS 前缀代表 NeXTSTEP,这是 Cocoa 的前身之一。NeXTSTEP 是由 NeXT 公司(由史蒂夫·乔布斯创立)开发的一个操作系统和开发环境,它在1989年首次发布。当苹果公司在1997...
为什么MSVC toolchain有多个cl.exe?
MSVC提供的不仅仅一个host + target的toolchain,根据host架构x86和x64共2种,target架构有x86、x64、arm或arm64四种,总共有8个cl.exe. 例如:
为什么设置MSVC cl.exe到PATH路径,依然无法正常编译?
MSVC可以正常编译C/C++代码的前提,还包括INCLUDE/LIB路径等都正确配置,而这无法仅仅通过MSVC cl.exe的PATH路径来完成。VS提供了一个官方的配置MSVC环境的方式,可以通过...
编程语言字符集有两个?
编程语言一般有两个字符集,一个是源码字符集,一个是编码字符集。 出现这两个字符集的原因,可以参考为什么VS编译UTF-8格式源代码, 代码中字符串却是ANSI编码?.
GCC和VS对BOM头处理有何不同?
Windows平台因为有ANSI编码的历史残留,在越入Unicode世界总是有那么一点格格不入。以Windows ANSI编码为GB2312,源代码是UTF-8编码为例:
为什么VS编译UTF-8格式源代码, 代码中字符串却是ANSI编码?
说到底,问题的根源在于源代码编码是给编译器看的,可以是任何编码,只要编译器支持的编码就可以,最终生成机器码不存在编码一说。但,源代码中的字符串是实打实会交给控制台或者GUI程序展示,它的编码正确性很重...
VS如何编译没有BOM头的UTF-8源代码?
可参考 为什么中文字符串会报出错误”C2001: 常量中有换行符”? 利用/utf-8或者/source-charset:utf-8解决此问题。不同之处是/utf-8还指定了执行编码集为UTF-8:/...
为什么会遇到"warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失"?
在Visual Studio默认源代码编码格式?有介绍VS判断代码编码的优先级,如上的警告表示VS以代码页936解析,即GB2312,为中文Windows操作系统ANSI编码。说明,源代码既没有BOM...