预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

q:gcc的全称是什么:a:gcc是gnucompilercollecti编译器套装),它不仅仅只是编译c语言的编译器,它提供了对c、面向对象的c(objectc),c++,java,ada语言的编译服务。过去有一段时间,它被成为gnuccompiler是因为它最初的开发目的的确是只提供了c编译功能,但是现在已经不在是这样了。q:gcc和g++什么关系a:事实上只有一个c++编译器,那就是g++。g++不仅仅是一个c++预处理器,而是一个实实在在的c++编译器。由于它的名字gnuc++compiler也能缩写成gcc,所以有时候有人叫它gcc也并不错。而我们通常所说的gcc是一个编译器套装,gcc命令只是一个调用各个实际编译器的快捷方式而已。q:gcc所支持的c语言规范有哪些a:目前主要的c语言规范有c89(c90),c95(94)和c99。c89是最早的c语言规范,于89年提出,90年先由美国国家标准局推出ansi版本,后来被接纳为iso国际标准(iso/iec9899:1990),因而有时也称为c90。但在94和96年分别对c90进行了两次错误修正,gcc支持的是修正后的c89(90)版本的c语言规范。在95年提出过对90版规范的修订案,称为c95或者amd1。gcc也支持c95规范。最新的一次c规范修订在99年制定(iso/iec9899:1999),即常称的c99规范。在2001年对c99的错误进行了修正,gcc支持的修正后的c99规范,但是到目前为止,gcc还没有完成对c99规范的完全支持。在默认设置下,gcc对c语言进行了一些自己的扩展。在不加语言设置参数的情况下,gcc使用c89规范和自己的一些扩展。在将来如果gcc完成了对c99的全面支持,可能默认会使用c99规范加gcc自己的扩展。gcc下的语言规范设置:-std=iso9899:1990,-ansi或-std=c89(三者完全等同)来指定完全按照c89规范,而禁止gcc对c语言的扩展。-std=iso9899:199409使用c95规范-std=c99或者-std=iso9899:1999使用c99规范。-std=gnu89使用c89规范加上gcc自己的扩展(目前默认)-std=gnu99使用c99规范加上gcc自己的扩展gcc支持传统C语言(也就是K&RC),包括一些处于规范之外但常见且使用的C语法。在编译时,指定'-traditional'选项即可。另外该选项还支持GNU对C语言的扩展gcc的'-ansi'选项'-ansi'支持符合ANSI标准的C程序,这样就会关闭GNUC中某些不兼容ANSIC的特性,例如asm,inline和typeof关键字,以及诸如unix和vax这些表明当前系统类型的预定义宏,同时开启不受欢迎和极少使用的ANSItrigraph特性,以及禁止`$'成为标识符的一部分。尽管使用了'-ansi'选项,下面这些可选的关键字,__asm__,__extension__,__inline__和__typeof__仍然有效.你当然不会把他们用在ANSIC程序中,但可以把他们放在头文件里,因为编译包含这些头文件的程序时,可能会指定`-ansi'选项。另外一些预定义宏,如__unix__和__vax__,无论有没有使用‘-ansi’选项,,始终有效。使用‘-ansi'选项不会自动拒绝编译非ANSI程序,除非增加`-pedantic'选项作为`-ansi'选项的补充。gcc的‘-pedantic‘选项可打开完全服从ANSIC标准所需的全部警告诊断;拒绝接受采用了被禁止的语法扩展的程序。无论有没有这个选项,符合ANSIC标准的程序应该能够被正确编译(虽然极少数程序需要‘-ansi'选项)。然而,如果没有这个选项,某些GNU扩展和传统C特性也得到支持。使用这个选项可以拒绝这些程序。没有理由使用这个选项,他存在只是为了满足一些书呆子(pedant)。对于替选关键字(他们以’__'开始和结束),‘-pedantic'不会产生警告信息。Pedantic也不警告跟在__extension__后面的表达式,不过只应该在系统头文件中使用这种转义措施,应用程序最好避免。