在使用ubunto编译C源代码时何时使用-std=c11
我正在尝试使用UBTO终端将C源代码编译成机器代码 我的导师指导我使用以下命令:在使用ubunto编译C源代码时何时使用-std=c11,c,ubuntu,C,Ubuntu,我正在尝试使用UBTO终端将C源代码编译成机器代码 我的导师指导我使用以下命令: running clang myprogramm.c -std=c11 为什么我要使用关键字-std=c11,与使用just有什么区别 clang myprogramm.c 使用std=选项是你的导师要求的(我猜到了她的动机,我特别擅长这个!)因为她想确保你远离那些把被接受的语言从C变成表面上看起来像C,但实际上是其他C编译器不支持的另一种语言的漂亮的叮当声特性 这不仅仅是附加的库函数。它包括打破ISO定义的
running clang myprogramm.c -std=c11
为什么我要使用关键字-std=c11,与使用just有什么区别
clang myprogramm.c
使用
std=
选项是你的导师要求的(我猜到了她的动机,我特别擅长这个!)因为她想确保你远离那些把被接受的语言从C变成表面上看起来像C,但实际上是其他C编译器不支持的另一种语言的漂亮的叮当声特性
这不仅仅是附加的库函数。它包括打破ISO定义的标准C语法的语法更改。蚱蜢在学习时不应该使用这些。使用
-std=c11
可以确保Clang警告或甚至拒绝此类构造,但会出现错误。使用std=
选项是你的导师所要求的(我知道她的动机,我特别擅长于此!)因为她想确保你远离那些把被接受的语言从C变成表面上看起来像C,但实际上是其他C编译器不支持的另一种语言的漂亮的叮当声特性
这不仅仅是附加的库函数。它包括打破ISO定义的标准C语法的语法更改。蚱蜢在学习时不应该使用这些。使用
-std=c11
可确保Clang警告或甚至拒绝此类构造,并出现错误。何时指定标准?无论何时使用编译器。让编译器想用什么就用什么从来都不是一个好主意
如果有人试图使用太旧的编译器,那么他们将得到警告或错误,并且他们将理解编译失败的原因
如果代码贡献者(甚至你自己!)试图使用太新的特性添加代码,他们的代码将被拒绝。如果您想保持与旧标准的兼容性,这一点非常重要
通过明确说明标准,使用新功能或扩展是一种选择,而不是偶然发生的。何时指定标准?无论何时使用编译器。让编译器想用什么就用什么从来都不是一个好主意 如果有人试图使用太旧的编译器,那么他们将得到警告或错误,并且他们将理解编译失败的原因 如果代码贡献者(甚至你自己!)试图使用太新的特性添加代码,他们的代码将被拒绝。如果您想保持与旧标准的兼容性,这一点非常重要
通过明确说明标准,使用新功能或扩展是一种选择,而不是偶然发生的。如文档所述,它将使用的语言标准设置为C11版本。所以,当您使用在该版本的standardAwesome中添加的功能时,您必须使用它!谢谢你的快速回答!标准编译选项应该包括“代码> -Walth-Woop-Pohannic < /代码>(以启用警告,考虑<代码> - Wshadow < /代码>),然后为库标准和“代码> >代码> > OFAS< <代码>或<代码> -O3优化级别。2020年无需使用低于
c11
的编码标准,除非您正在维护尚未更新的旧代码库。正如文档所述,它将使用的语言标准设置为c11版本。所以,当您使用在该版本的standardAwesome中添加的功能时,您必须使用它!谢谢你的快速回答!标准编译选项应该包括“代码> -Walth-Woop-Pohannic < /代码>(以启用警告,考虑<代码> - Wshadow < /代码>),然后为库标准和“代码> >代码> > OFAS< <代码>或<代码> -O3优化级别。2020年无需使用低于c11
的编码标准,除非您正在维护尚未更新的旧代码库。