优点还是缺点?大牛带你深入剖析不一样的C语言( 四 )

比如C语言中你可以将一个浮点型数据赋给一个整型变量 , 编译时只会警告 , 因为会丢失精度 , 但是在 Java 中这样写就会报错 , 它在语法上就禁止你这样写 。 所以不同的语言对同样一个问题有不同的处理方式 。

大家想想这样导致的结果是什么?因为有歧义的程序也可以通过 , 这样就会有很多漏洞 , 黑客往往会抓住这些漏洞进行攻击 。 所以说C语言比较危险 。 这也是为什么C语言比较难学的原因 , 因为你学完之后编写一个程序很可能就是错的 , 但又很难发现 。 所以前面说C++ 从安全性上对C语言进行了升级 。

第二个是它的开发周期比较长 。 因为C语言是面向过程的语言 , 面向过程语言的一个特点就是写大项目的时候很容易“崩溃” 。 当代码上到 10 万行的时候很容易崩溃 , 会出现各种各样莫名其妙的错误 。 这时候就需要用另外一种思想将整个程序的框架重新设计一下 , 即用面向对象的思想设计 。 这也是C语言现在没有 Java 流行的原因 。

C语言的第三个缺点是可移植性不是特别强 。 这个主要是针对 Java 的 。 毕竟Java 的可移植性太强了 , 所以就显得C语言的可移植性不强 。 什么叫可移植性?就是说 Java 程序在哪个机器上都可以运行 , 而且结果一模一样 。 而C语言就不行 , C程序在其他机器上不一定能运行 。 而且就算能运行 , 结果可能也不一样 。

推荐阅读