答:对于不同的调用,支持的标准和默认选项不同,可以参考编译器手册的如下解释:
产品 描述 建议
xlc 用来编译c文件,支持所有的ISO C99标准以及IBM语言扩展的特性。 编译c文件,建议使用这个命令。
c99 用来编译c文件,支持所有的ISO C99标准特性,但不支持IBM语言扩展。 想要严格遵循C99标准编译c文件,使用此命令。
c89 用来编译c文件,支持所有的ANSI C89标准特性,但不支持IBM语言扩展。 想要严格遵循C89标准编译c文件,使用此命令。
cc 用来编译c文件,支持pre-ANSI C 和许多常用标准。 可以用这个命令编译一些不是严格遵循标准C,比较老的c代码。
xlc++/xlC 使用这个命令来编译c++文件。 只要你的代码中包含c++语法,就必须使用这个命令。
gxlc 这个命令会把许多GNU C的选项映射成xlc选项,然后调用xlc编译。 对xlc编译选项不熟悉的,或者不想改变原来gcc选项的,可以考虑使用该命令。
gxlc++/gxlC 这个命令会把许多GNU C/C++的选项映射成XLC/C++选项,然后调用xlc++编译。 对xlC编译选项不熟悉的,或者不想改变原来g++选项的,可以考虑使用该命令。
以上除了gxlc/glxc++外的所有命令都有一个线程安全的版本与之对应(比如xlc_r,xlc++_r等),用来编译并行环境下的代码。