C语言为什么没有规定严格的运行时检查?为什么源代码编译会报错?

yumo6663周前 (07-18)技术文章15

若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!




C语言为什么没有规定严格的运行时检查?


这与C语言设计之初所处的硬件软件环境有关,最早Unix操作系统所在的硬件条件资源紧张,没有必要再设计一套严格的运行时检查,增大C语言编译器和运行时库。随着计算机内存变大,一些新编程语言例如Java/C#/Python都可以不遗余力做编译时或者运行时检查,因为内存不是问题。这并不是C语言设计的缺点,因为它当时真的很难。C++/ObjC和C语言一样,也没有严格的运行时检查。


为什么某些编辑器编写源代码编译会报错?


如果代码没有写错,大概率是编辑器的编码格式和编译器不相配。例如,编辑器保存的是UTF8格式带BOM,编译器并不能支持带BOM的源码。这种情况下,可以用hexdump或其他二进制查看工具检查代码是否有不预期的字符。


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


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








微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是 程序员小迷 (致力于C、C++、C#、Android、iOS、Java、Kotlin、Objective-C、Swift、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!

相关文章

一篇文章带你明白:什么是编译器,什么是集成开发环境(IDE)?

各位,关于编译器和集成开发环境这两个名称,我们平时一直在说,但这二位究竟有什么区别和联系呢,今天就跟大家简单聊一聊。我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行程序(Ex...

挑战 50 年霸主 C 语言:新语言 Hare,“异端”中的保守派

Hare 原意为野兔,它的开发者希望这种编程语言能够如野兔般拥有顽强的生命力。本周,软件开发者 Drew DeVault 公布了一种名为 Hare 的全新系统编程语言,并用“简单、稳定和健壮”作为核心...

C语言编译器优化选项(编译器优化算法)

编译器是软件开发工具链中的核心组成部分,它负责将人类可读的源代码转换为机器可执行的指令。现代编译器不仅执行这种转换,还具备强大的代码优化能力,可以在编译阶段自动改进程序的性能、减小代码体积,甚至有时还...

软件是用编程软件编的,编程软件又怎么来的?

我认为程序的本质是给定输入,用指定逻辑给出输出。所以用basic写汇编编译器,JavaScript写c的编程工具完全做得到。c的编译器是c写的,go的编译器是go写的,Java的编译器是Java写的。...

C语言和C++到底有什么关系?(c语言和c++是什么关系)

C++ 读作”C加加“,是”C Plus Plus“的简称。顾名思义,C++是在C的基础上增加新特性,玩出了新花样,所以叫”C Plus Plus“,就像 iPhone 6S 和 iPhone 6、W...