使代码在不同编译器下通用运行

ZDNet软件频道 时间:2003-08-12 作者:ZDNet China |  我要评论()
本文关键词:cpptips
想转用另一个编译器的程序员们经常发现他们的程序不再被编译。有时,程序可以被编译,但会有无数的警告信息出现。下面是一个短的清单,包括怎样发现错误和疏忽,以及解决方法。
本文译自Builder.com,未经许可请勿转载想转用另一个编译器的程序员们经常发现他们的程序不再被编译。有时,程序可以被编译,但会有无数的警告信息出现。很多情况下,这些错误的产生是很普遍的。下面是一个短的清单,包括怎样发现错误和疏忽,以及解决方法。

mai() 应当返回int

在某些编译器中,main() 函数返回void值是可以的,但是这种方式是不被提倡的,并且也能引起一系列维护上面的问题。因此,应该如下申明main():

int main()

或者这样:

int main(intargc, char* argv[])

避免使用订立标准以前的 .h头文件

像 <iostream.h> 这样的头文件,是不被提倡的和过时的。更换为新的方式 <xxx>

例如:用 <fstream> 和 <vector> 分别代替 <fstream.h> 和 <vector.h>

命名空间

标准头文件都在命名空间std中申明。如果你想引用这些文件中任何一种标识符,你就必须写全名字。例如:使用std::cinstd::vectorstd::string代替cin vectorstring。同时要在程序中加上 using namespace std

字符串(string)

字符串(string),是要回避的。在C中,字符串是一个以null结尾的字符数组。而C++中,字符串是std::string类的一个对象。要使用C风格字符串,就使用诸如在 <cstring> 中声明的strcmp()strcpy() 函数;而要使用C++字符串对象的话,头文件就要包含 <string> 。另外, <string.h> 并不是你所需要的,你就当作没有过这个文件。



责任编辑:炒饭

欢迎评论投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134