有的人同样的代码在不同的编译器上得出不同的结果,比如+++在左边和右边的情况。我想提醒大家的是尽量少用手机编译器,如今时代很多学生喜欢用手机编译器,手机编译器其实只是一个阉割的平台工具集,很多都不规范,所以总的来说我会建议你用vs编译器,这是最为专业的,而且未来如果你是C++方向,你也会用这个编译器来完成你的项目。
编译器的部分工作是寻找程序代码中的错误。编译器不能查出程序的意义是否正确,但它可以查出程序形式上的错误。他能给你提供最为普遍的错误,当然回到最初原始的二进制编程,只有0和1的时代,那是连一个数字都不能出错,那该是对程序员最为严苛的了,有点类似直接文本编辑器编辑完代码后直接编译。编译器所能提供的是语法错误,类型错误,声明错误等方面。
语法错误,显而易见,如果你是C++方向,那么C++的编译器必然是按照C++的标准来制定的,C++真正正式公布的标准就三个: C++98、C++03、C++11。而目前C++11是每个公司开始大规模引用的。
类型错误。C++中每个数据项都有其相关的类型。这个也好理解,数据类型是C++中的原料,类型错误的一个实例是传递了字符串字面值给应该得到整形参数的函数。
声明错误。C++程序中使用的每个名字必须在使用之前声明。没有声明名字通常会导致错误信息。有时候不加命名空间,不加域操作符,或者由于疏忽而拼错标识符名。
而编译器所提供的错误信息包含行号以及错误编号ID,所有的错误ID基本都是统一的,这是对我们所犯错误的简要描述。按照错误报告的顺序改正错误是个好习惯,通常一个错误可能会产生一连串的影响,并导致编译器报告比实际多得多的错误。最好在每次修改后或最多改正了一些显而易见的错误后,就重新编译代码。这个循环就是众所周知的编译-编译-调试。
编译器能做的也是有限的,只要你满足C++标准它都能编译过去,即使一些显而易见的人为错误只要不违法规则它依然判定合理,所以如果你没有积累深厚的调试和代码经验,在一些细节处是要花费较大功夫,更多的是体现字节编码,中文编码等,如果出现问题请不要慌,耐心调试,一般都会柳暗花明。
如果你编译出来的可执行文件exe遭到360等杀毒软件的拦截,那么我建议你直接退出杀毒软件。不要因为这样就觉得自己写出的代码已经接近黑客水平,只不过你这个exe判为可疑文件罢了,所以说请退出杀毒软件,继续编码去超越自我吧。
牛逼的大神不仅仅体现在代码的理解层面,还在于工具的使用。编译器作为一个工具,你不仅仅要用它,还要熟知他所有的技巧,断点调试,条件调试,内存管理,反汇编代码,以及各式各样的加密解密,当你写完代码后请不要仅仅满足于可运行,尽可能的去测试各种性能,优化它。
兔云程序
致力于推广编程教程,服务程序员
19篇原创内容
公众号