奇思妙想

2024年 3月 23日

什么是UCRT?

从Visual Studio 2015开始,CRT被重构成UCRT. UCRT已变成Windows 10组件的一部分。UCRT统一了微软对于不同子平台CRT不同的缺点,可以统一维护。

进一步了解
2024年 3月 22日

abort和exit退出程序有什么不同?

从实现来看,abort只是简单的发送SIGABRT信号,操作系统内核收到此信号,会尽快终止进程,注意,内核是不知道进程用户态有什么资源要释放的(尽管它可以查到),只会终止进程,这可能造成一些资源未清理...

进一步了解
2024年 3月 22日

如何理解C语言的未定义行为?

C语言自由灵活,未定义行为其实是标准对实现的放宽,即,一种行为如果可能产生错误,那标准不必要规定会有什么错,是内存泄漏、程序终止或者其他诡异的行为,只需要提示此行为未定义,具体交给实现。这种做法是标准...

进一步了解
2024年 3月 22日

为什么C语言是可移植性语言?

准确的说,任何一门不直接编写和硬件相关代码的语言,都具备可移植性。高级语言形如写了接口,只要有对应硬件平台的编译器,就可以生成相应代码。从这个角度,Java也是这样的,只不过换成了不同平台的JVM.

进一步了解
2024年 3月 22日

VC++和Turbo C也是编程语言吗?

不是的,它们仅仅是开发工具或套件的名称,它们是C/C++编程语言的开发工具。另外,因为平台相关,它们会扩展C/C++有特定的函数、类。不少不明真相的入门者,以为它们是新的编程语言,其实不是的。

进一步了解
2024年 3月 22日

C语言应用范围有哪些?

C语言使用地极其广泛,在主流操作系统内核和驱动,系统级应用程序和编译器、解释器中应用广泛。macOS/Windows/Linux内核都使用C语言,默认都可以用C语言写驱动,例外是macOS采用一套简化...

进一步了解