首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用-std=c11标志编译部分代码

使用-std=c11标志编译部分代码
EN

Stack Overflow用户
提问于 2018-08-14 08:46:43
回答 2查看 1.4K关注 0票数 1

是否有可能编译具有不同标志的代码的一部分--,而不需要更改makefile中的标志?

我有一个现有的项目,不是为-std=c11设置的。现在我添加了自己的代码,编译器告诉我如下

'for' loop initial declarations are only allowed in C99 or C11 mode

当我将标志更改为std=c11或c99时,程序的其余部分将不再编译。

是否有类似于extern "C" {}的C++命令编译器将下面的部分作为std=c11处理?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-14 08:54:22

据我所知,您不能在本地设置编译器选项。但是,您可以使用诊断语用在本地禁用虚假警告。

但是,最好的方法可能是将C99/C11代码分离到单独的.c文件中,然后将这些代码与项目的其余部分分别编译,然后将它们链接到一起。

票数 2
EN

Stack Overflow用户

发布于 2018-08-14 09:24:22

我不认为在本地强制使用-std=c99/-std=c11 (即使您可以对其他一些选项(例如,-On选项)执行等效的操作),但是即使在C90中,您也可以有一个for -循环-局部初始化声明,而不会造成很多语法中断。只需将for循环封装在大括号中,并将声明放在那里:{ int i=0; for(;i<5;i++){ something(); } }

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51837327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档