使用ubunto编译C源代码时,何时使用-std=c11



我正在尝试使用ubunto终端将C源代码编译为机器代码我的导师指示使用以下命令:

running clang myprogramm.c -std=c11

为什么我要使用关键字-std=c11,与只使用有什么区别

clang myprogramm.c 

你的导师需要使用std=选项(我猜到了她的动机,我特别擅长这一点。

这不仅仅是附加的库函数。它包括语法变化,打破了ISO定义的标准C的语法。蚱蜢在学习时不应该使用这些。使用-std=c11可以确保Clang警告或甚至错误地拒绝此类构造。

何时指定标准?无论何时使用编译器。让编译器只使用它想要的任何东西从来都不是一个好主意。

如果有人试图使用太旧的编译器,那么他们会收到警告或错误,并且他们会理解编译失败的原因。

如果代码贡献者(甚至可能是你自己!(试图使用太新的功能添加代码,他们的代码将被拒绝。如果您打算保持与旧标准的兼容性,这一点非常重要。

通过明确说明标准,使用新功能或扩展是一种选择,不会偶然发生。

最新更新