为什么c需要编译,js不用?

作者站长头像
站长
· 阅读数 9

现在我想要在terminal运行一个 .c 文件,但是需要先编译。可是 .js 文件却可以直接运行。

按理说,c不是更接近系统语言吗? .js可以直接运行这是什么原理阿?这两个文件的运行有什么区别?

回复
1个回答
avatar
test
2024-07-01

C语言是一种静态编译型语言,需要先将源代码编译成机器可执行的二进制文件(通常是可执行的程序或库文件),然后才能运行。

而JavaScript (JS) 是一种解释型语言,不需要显式的编译步骤。当你运行一个.js文件时,JS引擎会逐行解释和执行代码。

这两种文件的运行的区别主要在于语言本身的特性和执行方式。C语需要进行编译,因此通常具有更高的执行效率和对底层系统的直接控制能力。而JavaScript则是一种解释型语言,相对来说执行速度较慢,但它通过浏览器、Node.js等内置的解释器执行

说人话就是, C语言在硬件底层执行, 因此需要编译成机器认识的语言就是机器语言, 而javascript是浏览器、Node.js等内置的解释器执行, 不需要进行编译, 其实是解释器做了这一步

顺便一提, V8引擎是用C语言写的

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容