思考|编译器会出错么?

Posted 从零开始的测量

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了思考|编译器会出错么?相关的知识,希望对你有一定的参考价值。

首先,编译器也是程序,是程序就会有bug,虽然编译器也是大公司的高级程序员写的,但或多或少也会有各种各样的错误。

所以当我写代码遇到莫名其妙的问题时候,我总在怀疑是不是编译器出了问题。


实际上我也遇到过编译器的问题,只有一次。有一次用vs2013的时候,我死活编译不过boost库,最后将vs2013升级到updata5才成功了。这便是因为编译器的bug导致boost库发生问题。这个bug是由于模板函数导致的。

正常情况下我们编程,编译器是不会出现问题的。


在我编程过程中常有bug一周都解决不了,但是99%的情况下都是由于我的c++知识匮乏导致的,随着知识的变多,慢慢就理解错误了。


在c++使用过程中,最反人类的是模板函数,很多情况下无法让人理解,同样一个函数,需要在头文件中声明,在源文件中实现。也就是说,即使只做一件非常简单的事情,需要改动程序的好多地方,而且这几个地方互不关联,分布也非常散。如果没有非常好的命名习惯和良好的代码风格很快就不可维护了。


例如:

超长定义 模板函数

宏函数


这些实现了许多神奇的功能,但我有了源码根本不知道他在干什么,果然编程不是什么好活啊!!!!!!


结论:

1、珍爱生命,不要碰c++的模板函数,嗯,最好不要碰c++

2、会怀疑编译器会出错的,好好想想不都是你的错么?



以上是关于思考|编译器会出错么?的主要内容,如果未能解决你的问题,请参考以下文章

关于“ROS2 Topic-Statistics-Tutorial编译出错”的思考

深入理解include预编译原理

使用dnspy进行编辑是出错

一段反编译后的C#代码段,不知道是啥意思,但是出错。

当其他编译器没有时,MinGW gcc 会出错

取编译参数时遇到的管道重定向问题