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

使用-std = c99进行编译时,是否需要使用-pedantic或-ansi?

在使用-std=c99进行编译时,是否需要使用-pedantic或-ansi取决于具体的编译器和编译环境。

-std=c99选项用于指定编译器使用C99标准进行编译。C99是C语言的一个版本,引入了一些新的特性和语法规则。如果你的代码使用了C99的特性,那么使用-std=c99选项是必要的。

-pedantic选项用于启用编译器对代码进行更严格的检查,以确保代码符合C标准的要求。它会禁止一些非标准的语法和行为,并给出相应的警告或错误。如果你希望编译器对代码进行更严格的检查,以确保代码的可移植性和规范性,可以使用-pedantic选项。

-ansi选项用于指定编译器使用ANSI C标准进行编译。ANSI C是C语言的一个早期版本,它定义了C语言的基本语法和语义。如果你的代码需要与旧版的C编译器兼容,或者你希望使用较为保守的C语言特性,可以使用-ansi选项。

需要注意的是,不同的编译器对于这些选项的支持和行为可能会有所差异。因此,在实际使用中,建议查阅所使用编译器的文档,了解其对于-std、-pedantic和-ansi选项的具体定义和行为。

腾讯云相关产品和产品介绍链接地址:

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

相关·内容

  • 从零开始学习gcc基础内容之flag

    从零开始学习gcc基础内容之flag 大家经常在编译代码通常会使用一些gcc flags,今天这篇文章来梳理一下一些比较重要的gcc flag。 1.优化flag 优化标志用于提高编译代码的性能。...它帮助预处理器在编译代码找到必要的头文件。 5.链接器Flag 链接器标志控制链接过程,该过程在编译进行,将目标文件和库组合以生成最终的可执行文件。...6.平台特定flag GCC提供了针对特定平台的标志,允许开发人员针对特定架构启用特定平台功能。在为特定硬件操作系统开发代码,这些标志非常有用。...-m32和-m64:这些标志指定是为32位还是64位目标进行编译。 7.其他Flag 除了前面提到的类别,还有一些其他标志。 一些常用的杂项标志包括: -std:该标志指定要使用的C语言标准版本。...例如,-std=c99选择C99标准。-pedantic:该标志启用对所选择的C语言标准的严格遵守,对非标准或可疑代码结构提供额外的警告。

    37010

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

    什么是ANSI C、ISO C、C89、C90标准? 随着C语言使用得越来越广泛,出现了许多新问题,人们日益强烈地要求对C语言进行标准化。...4、 _Static_assert():_Static_assert(),静态断言,在编译时刻进行,断言表达式必须是在编译时期可以计算的表达式,而普通的assert()在运行时刻断言。...11、quick_exit():又一种终止程序的方式,当exit()失败用以终止程序。 12、复数宏,浮点数宏。...以C99编译的命令为: gcc -std=c99 test.c -o test.exe 如下图,以C99编译能成功编译: ? 所以在平时的开发中应该要了解编译器支持什么标准。...GCC编译器在编译的时候可指定C语言标准: 指定c90标准: -std=c90 指定C99标准: -std=c99 定C11标准(目前正在开发中): -std=c11 以上就是关于C语言标准的笔记,如有错误欢迎指出

    2.9K30

    Linux GNU C 和 ANSI C 的区别

    Linux 上可用的 C 编译器是 GNU C 编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布。GNU C对标准C进行一系列扩展,以增强标准C的功能。...C99已经支持__func__宏,因此建议在Linux编程中不再使用__FUNCTION__,而转而使用__func__: void example(void) { printf("This...packed属性作用于变量和类型,用于变量结构体成员表示使用最小可能的对齐,用于枚举、结构体联合体类型表示该类型使用最小的内存。...“-ansipedantic编译选项,则会告诉编译器不使用GNU扩展语法。...: gcc -c test.c 如果使用“-ansipedantic编译选项,编译会报警: gcc -ansi -pedantic -c test.c test.c:3: warning: ISO

    5.4K40

    Tool之双斜线注释

    很多编码人员习惯于在单行注释使用双斜线(//),因为输入方便。 ? 不过VxWorks的开发人员可能就会遇到一个问题了 ?...因为这个工程中,IDE使用编译器是gnu,编译规则默认包含了-ansi ? 从gnu的手册中,可以看到-ansi等同于-std=c89,而c89那个年代,是不支持双斜线的 ?...原来删除-ansi后,IDE就会将规则重置为-std=gnu89,而正是gnu89对c89做了一些扩展,其中就包含了这个双斜线注释。...不过,毕竟和c89相比,c99的变化太多,编译规则改动太大,可能会涉及到代码移植兼容的问题,这就需要项目经理技术负责人来统筹定制规则了。...这就是gnu编译编译双斜线注释的问题。 提到gnu编译器,你是不是又想到一种办法?对,就是用diab编译器来编译工程。 ? 试一下,果然没问题。难道diab默认没有使用ansi选项?

    1.3K20

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

    适用C(C源代码,如C ++,Objective-C和Objective-C ++)的标准: -ansi 在C模式下,这相当于 -std = c90的。...这将关闭不兼容的与ISO C90(编译C代码),标准的C ++(编译C ++时代码)GCC的某些特征,如asm与typeof关键字,以及预定义的宏如unix和vax标识系统的类型你正在使用。...当然,您不希望在ISO C程序中使用它们,但将它们放在可能包含在编译完成的头文件中是有用的-ㄧ。备用的预定义宏,如__unix__和__vax__也可用,有没有-ㄧ的。...为了那个原因,-Wpedantic 除了需要 -ㄧ。请参阅警告选项。 宏__STRICT_ANSI__是预定义的-ㄧ 选项被使用。...-std= 确定语言标准。有关这些标准版本的详细信息,请参阅GCC支持的语言标准。当选择编译CC ++,此选项目前才被支持。

    1K30

    哪个版本的gcc才支持c11

    -std=c99 or -std=iso9899:1999 未完成C99标准之前,叫做C9X 带了GNU扩展的:-std=gnu99 C11:gcc选项是-std=c11 or -std=iso9899...安装成功后我们如果要使用gcc-4.8和g++-4.8来编译的话,我们就得把gcc改为gcc-4.8,g++同理,改为g++-4.8来进行编译。...如果你想直接使用gcc-4.8而不改变编译gcc改为gcc-4.8的话,我们就可以更改一下gcc的软链接: [c++] view plain copy sudo rm /usr/bin/gcc...既然GCC-4.8使用了最新的C++11标准,但是我们为什么还是提示错误呢?解决方法如下: 在编译的时候添加-std=c++11选项即可正常编译C++11标准的代码!...提示错误:‘c’变量没有类型,范围for循环不允许在C++98标准中使用 这是因为GCC/G++默认的-std(即C++语言标准)不是C++11,在这里默认的是C++98,所以需要显式地开启,即添加-

    7.8K20

    Vulnhub靶机系列:Lampião 1.0

    利用nmap的TCP半开放扫描,对网站端口进行快速探测,nmap -sS -p 1-65535 192.168.194.144,该扫描方式因为它不打开一个完全的TCP连接,所以是使用频率最高的扫描方式。...上传后再进入TTL的终端下,对cpp文件进行编译。...g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil 1-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告...2-pedantic 允许发出ANSI/ISO C标准所列出的所有警告 3-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 4-std=c++11就是用按C++...2011标准来编译的 5-pthread 在Linux中要用到多线程需要链接pthread库 6-o dcow gcc生成的目标文件,名字为dcow 再运行编译后文件并将结果输出到一个文本中.

    1.1K30

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

    调试使用的信息 -fverbose-asm:在编译成汇编语言,把C变量的名称作为汇编语言中的注释 -save-temps:自动输出预编译处理文件、汇编文件、对象文件,编译正常进行 -fsyntax-only...:只测试源文件语法是否正确,不会进行任何编译操作 -ffreestanding:编译成独立程序,而非宿主程序 -ansiANSI标准 -std=c99C99标准 -std=gnu89:ISO/IEC...和-l库名参数,但通过ldd命令查看,找不到指定链接的.so文件,此时需要通过修改LD_LIBRARY_PATH或者/etc/ld.so.conf文件来指定动态库的目录,通过此做法可解决库无法链接的问题...凡是-x后面所列的所有文件都会被视为其指定的类型,要想改变类型可以再一次使用-x选项,或者使用-x none回到默认设置 -l library:进行连接搜索名为library的库 -L dir:把dir.../static_lib.a -o app编译生成可执行文件app 创建并使用动态库方法 编写C源文件share_lib.c,写入需要重复调用的函数,然后使用命令gcc -shared -FPIC -o

    74030
    领券