首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GCC选项执行Ansi C标准检查?

在GCC(GNU Compiler Collection)中,可以使用-ansi-std选项来执行ANSI C标准检查。-ansi选项将启用C语言的ANSI C标准(C89),而-std选项则允许您指定要使用的特定C标准。例如,-std=c99将启用C99标准。

GCC是一个非常流行的编译器,用于将C、C++和其他语言编写的源代码编译为可执行的程序。它支持多种平台和操作系统,并且是开源软件。

在使用GCC进行编译时,您可以使用-ansi-std选项来确保您的代码符合特定的ANSI C标准。这有助于确保您的代码在不同的平台和操作系统上具有一致的行为。

例如,要使用GCC编译一个C程序,并确保它符合ANSI C标准,您可以使用以下命令:

代码语言:txt
复制
gcc -ansi -o my_program my_program.c

或者,要使用C99标准,您可以使用以下命令:

代码语言:txt
复制
gcc -std=c99 -o my_program my_program.c

总之,GCC提供了-ansi-std选项,以帮助您确保您的代码符合特定的ANSI C标准。这有助于确保您的代码在不同的平台和操作系统上具有一致的行为。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C语言笔记】什么是ANSI C标准

什么是ANSI C、ISO CC89、C90标准? 随着C语言使用得越来越广泛,出现了许多新问题,人们日益强烈地要求对C语言进行标准化。...在1990年,ANSI C标准(带有一些小改动)被美国国家标准协会(ANSI)采纳为ISO/IEC 9899:1990。这个版本有时候称为C90或者ISO C。...综上,ANSI C、ISO CC89、C90其实是同一种标准。 什么是C99标准? 2000年3月,ANSI采纳了 ISO/IEC 9899:1999 标准。这个标准通常指C99。...以C99编译的命令为: gcc -std=c99 test.c -o test.exe 如下图,以C99编译能成功编译: ? 所以在平时的开发中应该要了解编译器支持什么标准。...GCC编译器在编译的时候可指定C语言标准: 指定c90标准: -std=c90 指定C99标准: -std=c99 定C11标准(目前正在开发中): -std=c11 以上就是关于C语言标准的笔记,如有错误欢迎指出

2.9K30
  • gcc命令使用_c调用cmd并执行命令

    将编译生成的 hello.s 文件汇编生成目标文件 hello.o GCC选项-c 使 GCC执行完汇编后停止,生成目标文件 链接 静态链接: 静态链接是指在编译阶段直接把静态库加入到可执行文件中去...: gcc命令基本操作 简单编译 预处理: gcc -E test.c -o test.i 或 gcc -E test.c gcc 的-E 选项,可以让编译器在预处理后停止,并输出预处理结果...汇编 gcc -c test.s -o test.o 链接 gcc 连接器是 gas 提供的,负责将程序的目标文件与所需的所有附加的目标文件连接起来,最终生 成可执行文件。...test2.o -o test 检错 a. gcc -pedantic illcode.c -o illcode -pedantic 选项能够帮助程序员发现一些不符合 ANSI/ISO C 标准的代码...,但不是全部,事实上只有 ANSI/ISO C 语言标准中要求进行编译器诊断的 那些情况,才有可能被 GCC 发现并提出警告 b. gcc -Wall illcode.c -o illcode 使用它能够使

    1.8K40

    C++11:MinGW当指定-std=c++11选项时 默认定义了__STRICT_ANSI__

    关于__STRICT_ANSI__的来历,参见下面关于gcc编译选项的说明: -ansi 支持符合ANSI标准C程序....使用-ansi选项的时候,预处理器会预定义一个__STRICT_ANSI__宏.有些头文件关注此宏,以避免声明某些函数,或者避免定义某些宏,这些函数和宏不被ANSI标准调用;这样就不会干扰在其他地方 使用这些名字的程序了.../gcc-5.3.0/gcc/C-Dialect-Options.html#C-Dialect-Options 按照上面这些说明,我们可以理解为,编译器定义是否__STRICT_ANSI__取决于我们在编译代码时...如果没有指定-ansi,就不会有__STRICT_ANSI__。 -std=c++11下的变化 但是到gcc全面支持C++11以后,这个逻辑好像就不对了。 下面是一段测试代码。...如果要在-std=c++11选项时不允许编译器预定义__STRICT_ANSI__,就在编译选项中指定 -U__STRICT_ANSI__ ?

    2K20

    Linux编译器---gccg++使用详解

    它将C源代码编译成目标代码,并调用GCC的后端来生成可执行文件或库文件。 特点:gcc支持多种C语言标准,如ANSI CC89/C90)、C99和C11。...开发人员可以使用gcc来编译符合不同C语言标准的代码,并生成与目标平台兼容的可执行文件。...特点:g++支持多种C++标准,如C++98、C++11、C++14、C++17等。开发人员可以使用g++来编译符合不同C++标准的代码,并生成高效的可执行文件或库文件。...实例: gcc -E test.c -o test.i 选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。...⚡编译(生成汇编) 在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc 把代码翻译成汇编语言。

    73320

    g++入门教程

    g++ test.o -o test.out //生成二进制.out可执行文件 2.命令格式 gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [...C语言中的#undef macro -undef 取消任何非标准宏的定义,C++标准预定义的宏仍然有效 (4)链接方式选项 -static 此选项将禁止使用动态库。...(5)错误与告警选项 -pedantic 允许发出ANSI/ISO C标准所列出的所有警告 -pedantic-errors 允许发出ANSI/ISO C标准所列出的错误 -Wall 一般使用该选项...,在使用非gnu汇编工具的时候,可能有些问题 g++ -pipe -o hello.out hello.cpp -ansi 关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性...-nostdin C++ 规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,此选项在创建libg++库使用。

    14.7K78

    make命令和makefile文件

    1. make命令的选项和参数   make程序本身有许多选项,其中最常用的三个选项如下所示: (1)-k:让make命令在发现错误时仍然继续执行 (2)-n:让make命令输出将要执行的操作步骤,而不真正执行这些操作...a.h b.h gcc -c 2.c 3.o: 3.c b.h c.h gcc -c 3.c 1.3 makefile文件中的宏   为了让makefile文件在面对大项目时不至于过于庞大和缺乏弹性...3.c   ”-g” 是 gcc选项, “-o”也是 gcc选项。...gcc 的-Wall 选项可以打印出编译时所有的错误或者警告信息 1.3.1 make命令内置的特殊宏   $?   ...  当前规则的第一个依赖文件   $^   当前规则的所有依赖文件,以逗号分隔   $*   不包括后缀名的当前依赖文件的名字   -   告诉make命令忽略所有的错误   @   告诉make在执行命令前不要将该命令显示在标准输出上

    2.6K40

    【一通百通】CC++的std标准总结

    适用C(或C源代码,如C ++,Objective-C和Objective-C ++)的标准: -ansiC模式下,这相当于 -std = c90的。...这将关闭不兼容的与ISO C90(编译时C代码),或标准C ++(编译C ++时代码)GCC的某些特征,如asm与typeof关键字,以及预定义的宏如unix和vax标识系统的类型你正在使用。...的 -ㄧ选项不会导致非ISO程序被无偿地拒绝。为了那个原因,-Wpedantic 除了需要 -ㄧ。请参阅警告选项。 宏__STRICT_ANSI__是预定义的-ㄧ 选项被使用。...有关这些标准版本的详细信息,请参阅GCC支持的语言标准。当选择编译CC ++时,此选项目前才被支持。...该标准基本上完全支持,模数错误,浮点问题(主要但不完全与附件F和G中的可选C11特性相关)和可选附件K(界限检查接口)和L(可分析性)。

    1K30

    CC++生态工具链——gccg++编译器使用指南

    而g++只把xxx.c和xxx.cpp一律都当作C++语言来编译。 在编译C++文件的时候,g++会自动链接一些标准库或基础库,而gcc不会。...当正在编译的C++代码文件依赖STL标准库的时候,为了使用STL,gcc命令需要增加参数–lstdc++。因此,虽然gcc和g++都可以编译C++语言程序,但是使用g++会更方便一些。...2.编译 首先检查代码的规范性和语法错误等,检查完毕后把代码翻译成汇编语言,生成汇编语言文件 3.汇编 基于汇编语言文件生成二进制格式的目标文件 3.链接 将目标代码与所依赖的库文件进行关联或者组装,合成一个可执行文件...对合法但值得怀疑的代码发出警告 例如 -Wsign-compare -pendantic / -Wpendantic #发出ISO C和ISO C++标准列出的所有警告,用于语法检查,-pedantic-erros...-O1 / -O #尝试优化编译时间和可执行文件大小 -O2 #尝试所有的优化选项,但不会进行“空间换时间”的优化方式 -Os #尝试所有的优化选项时,优先优化可执行文件大小 七,参考阅读 https

    2.5K30

    opencl:C++11下使用别名(x,y,z,hi,lo...)访问vector类型(cl_int2,cl_long16...)的元素

    编译器差异 不过你也看到了这些别名都定义在匿名结构体(anonymous struct)中,而匿名结构体并不是C语言标准的一部分,是编译器自行实现的,所以__CL_HAS_ANON_STRUCT__宏开关决定编译器是否支持匿名结构体...关于__STRICT_ANSI__来历,请参见我的上一篇博客《C++11:MinGW当指定-std=c++11选项时 默认定义了__STRICT_ANSI__》(其实本文的答案也隐藏在这篇博客里) 从这篇博客的标题就可以得知...,而是因为我使用了-std=c++11选项导致编译器自动定义了__STRICT_ANSI__。...方案1: 第一个办法就是前述博客中最后提到的办法:在使用-std=c++11选项的同时,加上-U__STRICT_ANSI__选项, 用于去掉__STRICT_ANSI__定义 如果你是用cmake...来编译项目代码,可以在CMakeList.txt中加入这样的代码 #判断编译器类型,如果是gcc编译器,则在编译选项中加入c++11支持,并去掉__STRICT_ANSI__定义 if(CMAKE_COMPILER_IS_GNUCXX

    1.1K10

    这篇文章不知道起什么名字

    -ffreestanding:编译成独立程序,而非宿主程序 -ansiANSI标准 -std=c99:C99标准 -std=gnu89:ISO/IEC 9899:1990以及GNU扩充 -std=gnu99...-O1:第一级别优化,使用此选项可使可执行文件更小,运行更快,并不会增加太多编译时间,可以简写为-O -O2:第二级别优化,采用了几乎所有优化技术,使用此选项会延长编译时间 -O3:第三级别优化,在-O2...规则显示在标准输出,不产生预处理过的C程序 -C:告诉预处理器不要丢弃注释。配合-E选项使用 -P:告诉预处理器不要产生#inline命令。.../static_lib.a -o app编译生成可执行文件app 创建并使用动态库方法 编写C源文件share_lib.c,写入需要重复调用的函数,然后使用命令gcc -shared -FPIC -o...使用命令gcc app.c .

    74030

    Linux从入门到精通(九)——Linux编程

    举个例子,如果读者想编译 C++11 标准下的 C++ 程序,则至少要安装 4.8 版本的 GCC 编译器,低版本的 GCC 编译器是不支持 C++11 标准的。...5.2.2 编译阶段 gcc选项,-S,生成.s文件(作用:检查代码的规范性、是否有语法错误等,以确定代码实际要做的工作,在检查无误后,就开始把代码翻译成汇编语言。)...Object-C原始程序 .o 目标文件 .i 已经经过预处理的C原始程序 .a/so 编译后的库文件 .ii 已经经过预处理的C++ 5.4 gcc 常用编译选项 常用选项选项含义-c...警告和出错选项选项含义-ansi支持符合ANSI标准C程序-w关闭所有警告信息-Wall允许发出gcc提供的所有有用的报警信息 优化选项选项含义-O编译优化,使得编译后的代码执行效率更高...能够在程序停止时检查所有参数的情况。 能够根据指定条件改变程序的运行。 6.1 gdb 基本用法 ​ 需要调试的程序,在编译时要使用调试选项。在默认的情况下,调试符号不会编译到程序中。

    2K30
    领券