C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 禁用特定代码块的语言扩展?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在MSVC编译器中禁用语言扩展,但仅限于特定的代码块.

一个@L_944_2@可以配置为禁用整个翻译单元的语言扩展(例如,整个文件),但我不想这样做.我最终希望在编译#include语句和其他预处理程序时启用语言扩展,但是为我的实际代码禁用它.

有没有办法禁用特定代码块的语言扩展,或在MSVC 2008中使用#pragma?

解决方法

它应该是不可能的,因为当启用语言扩展时,Visual studio使用不同的算法来编译代码,这在预处理器扩展之后发生.换句话说,不可能用扩展编译一半文件,而另一个没有.

让我用一个使用可变长度参数列表扩展的示例来说明.如果在一个文件中将函数定义为以下内容,该怎么办

void MyFunc( int x,... );
void MyFunc( int x,char * c )
{ }

稍后在您的源文件调用

char * c = new char;
MyFunc(5,c);

根据ANSI C,头文件中的声明完全没有意义,因此应该调用带有“…”的MyFunc,而根据MSVS应该使用第二个函数.

大佬总结

以上是大佬教程为你收集整理的c – 禁用特定代码块的语言扩展?全部内容,希望文章能够帮你解决c – 禁用特定代码块的语言扩展?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。