怎么让编译器默认使用C99或GNU C99标准来解释你的代码
时间: 2023-12-08 10:06:05 浏览: 67
你可以在编译器的配置文件中设置默认使用C99或GNU C99标准来编译你的代码。这样,你就不必每次都在命令行中使用选项“-std=c99”或“-std=gnu99”了。以下是设置默认标准的方法:
对于GCC编译器,你可以在编译器的配置文件中添加以下语句:
```
# For C99 standard
CFLAGS += -std=c99
# For GNU C99 standard
CFLAGS += -std=gnu99
```
在这里,CFLAGS是一个环境变量,它包含编译器的选项。你可以在配置文件中添加这些选项,以便在每次编译时都使用它们。
对于Clang编译器,你可以在编译器的配置文件中添加以下语句:
```
# For C99 standard
CFLAGS += -std=c99
# For GNU C99 standard
CFLAGS += -std=gnu99
```
在这里,同样是使用CFLAGS来设置编译选项。你可以在配置文件中添加这些选项,以便在每次编译时都使用它们。
请注意,不同的编译器可能有不同的配置文件和设置方法,因此你需要查阅你使用的编译器的文档来了解具体的设置方法。
相关问题
c99 和gnu99 有何区别
C99和GNU99是C语言的两个标准,它们之间有一些区别:
1. C99是由国际标准化组织(ISO)在1999年发布的C语言标准,而GNU99是GNU项目在C99基础上进行了一些扩展和改进的版本。
2. GNU99相比于C99,加入了一些GNU扩展,这些扩展主要是为了提供更好的与GNU工具链(如GCC编译器)的兼容性和功能。
3. C99对于一些C90中的一些不明确或者定义模糊的行为进行了明确的规定,并增加了一些新特性,如更灵活的数组初始化、更严格的类型检查等。
4. GNU99在C99的基础上引入了一些额外的特性,比如:零长度数组(zero-length arrays)、语句表达式(statement expressions)等。这些特性在标准C中并不支持。
总的来说,C99是官方的C语言标准,而GNU99是在C99基础上进行了一些扩展和改进的版本,主要为了提供更好的与GNU工具链的兼容性和功能。
C99模式或者GNU模式
C99模式和GNU模式是用于指定编译器使用的语言模式的选项。C99模式是指符合ISO C99标准的语言模式,而GNU模式是指GCC编译器的GNU方言的ISO C99模式。在Clang中,可以使用-std选项来指定使用的语言模式。如果未指定-std选项,则Clang默认使用的是GNU99模式,即GCC的GNU方言的ISO C99模式。\[1\]
引用\[2\]中提到,当GCC完全实现ISO C99标准时,GNU99模式将成为默认模式。而引用\[3\]中提到,在Linux系统下,使用gcc/g++编译器编译出来的二进制可执行程序,默认是release模式。如果要使用gdb调试,需要在生成二进制可执行程序时加上-g选项。所以,如果你想在Linux系统下使用C99模式或者GNU模式进行编译,可以使用Clang编译器,并通过-std选项指定相应的模式。
#### 引用[.reference_title]
- *1* *2* [c99编译报错改用gnu99](https://blog.csdn.net/wteruiycbqqvwt/article/details/115486276)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [< Linux >:Linux 环境基础开发工具使用 (3)](https://blog.csdn.net/lcc11223/article/details/127664380)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]