”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Visual Studio 是否完全支持现代 C/C++ 标准?存在哪些替代方案?

Visual Studio 是否完全支持现代 C/C++ 标准?存在哪些替代方案?

发布于2024-12-22
浏览:142

Does Visual Studio Fully Support Modern C/C   Standards, and What Alternatives Exist?

Visual Studio 对现代 C/C 标准的支持

在软件开发领域,C 和 C 编程语言随着引入 C99 和 C 11 等新标准,有望带来一系列有益的功能。然而,问题出现了:这些进步会进入微软的 Visual Studio IDE(集成开发环境)吗?

微软的立场

微软支持新 C 的官方立场/C 标准相当平淡。在一篇博客文章中,Visual C 编译器团队以缺乏用户需求为由,证明了他们不愿意实现 C99 的合理性。根据他们的反馈,用户更倾向于关注较新的 C -0x 标准。

此外,微软的公开回应经常指责用户自己对现代标准的缓慢采用。在 connect.microsoft.com 论坛帖子中,Visual C 编译器团队成员 Jonathan Caves 表示,他们只会考虑根据用户反馈实现流行的 C-99 功能。

对开发人员的影响

缺乏对现代标准的支持给希望采用最新语言功能的开发人员造成了重大障碍。它将现代基于 gcc 的代码移植到 MSVC 成为一项艰巨的任务。

英特尔的解决方案

值得庆幸的是,英特尔通过其英特尔 C 编译器提供了替代解决方案。该编译器支持 C99 代码,甚至使用与 gcc 类似的标志,简化了平台之间的代码可移植性。英特尔编译器还可以集成到 Visual Studio 中,使开发人员能够利用他们喜欢的 IDE,同时仍然可以访问现代 C/C 功能。

更广阔的视角

超越在解决 Visual Studio 支持的具体问题时,重要的是要考虑 Microsoft 对语言标准化的消极方法的影响。它表明希望通过让用户难以切换编译器或 IDE 来将用户锁定在其生态系统中。这违背了开源开发和代码可移植性的原则,而这在当今的软件领域至关重要。

对于寻求更通用且面向未来的开发环境的开发人员,请迁移到 Intel CC 或 gcc 并使用像 Eclipse 这样的替代 IDE 是更明智的选择。通过采用更广泛的编译器和 IDE,开发人员可以访问现代语言功能并保持跨多个平台的代码可移植性。

最新教程 更多>
  • 如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    appEngine静态文件mime type override ,静态文件处理程序有时可以覆盖正确的mime类型,在错误消息中导致错误消息:“无法猜测mimeType for for file for file for [File]。 application/application/octet...
    编程 发布于2025-05-03
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-05-03
  • 如何在Java的全屏独家模式下处理用户输入?
    如何在Java的全屏独家模式下处理用户输入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    编程 发布于2025-05-03
  • 如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在“ dd/mm/yyyy hh:mm:mm:ss.ss”格式“ gormat 解决方案:的,请访问量很大,并应为procectiquiestate的,并在整个代码上正确格式不多: java.text.simpledateformat; 导入java.util.calendar; 导入java...
    编程 发布于2025-05-03
  • 如何将来自三个MySQL表的数据组合到新表中?
    如何将来自三个MySQL表的数据组合到新表中?
    mysql:从三个表和列的新表创建新表 答案:为了实现这一目标,您可以利用一个3-way Join。 选择p。*,d.content作为年龄 来自人为p的人 加入d.person_id = p.id上的d的详细信息 加入T.Id = d.detail_id的分类法 其中t.taxonomy =...
    编程 发布于2025-05-03
  • 如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求模拟浏览器行为,以及伪造的用户代理提供了一个用户 - 代理标头一个有效方法是提供有效的用户式header,以提供有效的用户 - 设置,该标题可以通过browser和Acterner Systems the equestersystermery和操作系统。通过模仿像Chro...
    编程 发布于2025-05-03
  • 在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8表中将latin1字符转换为utf8 ,您遇到了一个问题,其中含义的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致电。为了解决此问题,您正在尝试使用“ mb_convert_encoding”和“ iconv”转换受...
    编程 发布于2025-05-03
  • Java中假唤醒真的会发生吗?
    Java中假唤醒真的会发生吗?
    在Java中的浪费唤醒:真实性或神话?在Java同步中伪装唤醒的概念已经是讨论的主题。尽管存在这种行为的潜力,但问题仍然存在:它们实际上是在实践中发生的吗? Linux的唤醒机制根据Wikipedia关于伪造唤醒的文章,linux实现了pthread_cond_wait()功能的Linux实现,利用...
    编程 发布于2025-05-03
  • 如何在GO编译器中自定义编译优化?
    如何在GO编译器中自定义编译优化?
    在GO编译器中自定义汇编优化 go中的默认编译过程遵循特定的优化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    编程 发布于2025-05-03
  • 在Java中使用for-to-loop和迭代器进行收集遍历之间是否存在性能差异?
    在Java中使用for-to-loop和迭代器进行收集遍历之间是否存在性能差异?
    For Each Loop vs. Iterator: Efficiency in Collection TraversalIntroductionWhen traversing a collection in Java, the choice arises between using a for-...
    编程 发布于2025-05-03
  • 如何在颜色数组中找到最接近的颜色匹配?
    如何在颜色数组中找到最接近的颜色匹配?
    在数组 给定数组和单独的颜色对象中,任务是确定数组中最接近的匹配。颜色距离是一个主观的概念,并且有多种量化它的方法。仅调节方法此方法仅关注颜色的色调,忽略饱和度和亮度。它计算候选颜色和给定颜色的色调之间的绝对差异。选择了具有最小色调差异的候选颜色。此方法在RGB空间中的颜色之间的直接距离。它计算...
    编程 发布于2025-05-03
  • 在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在JTable中维护jtable单元格渲染后,在JTable中,在JTable中实现自定义单元格渲染和编辑功能可以增强用户体验。但是,至关重要的是要确保即使在编辑操作后也保留所需的格式。在设置用于格式化“价格”列的“价格”列,用户遇到的数字格式丢失的“价格”列的“价格”之后,问题在设置自定义单元格...
    编程 发布于2025-05-03
  • 如何仅在CSS和JavaScript中将元素固定在X轴?
    如何仅在CSS和JavaScript中将元素固定在X轴?
    在CSS中定位固定在X轴上的元素在CSS中,位置属性允许您控制页面上元素的定位。默认情况下,元素定位为“静态”,这意味着它们根据页面的流量放置。但是,您可以使用其他值更精确地定位元素。 仅在X轴上修复一个元素,您可以使用固定位置。这将锁定元素相对于视口的位置,因此即使页面滚动也不会水平移动。 ...
    编程 发布于2025-05-03
  • 在Go语言中如何简洁定义10的幂常量
    在Go语言中如何简洁定义10的幂常量
    在GO 利用浮点线文字一种简洁的方式是使用浮点文字,该方法是使用floingpoint protals。写作1E3比写作1000更有效。这是一个示例(67个没有空间的字符):的文字用于未构图的整数常数,我们可以将1000用于KB,并用KB将随后的常量乘以KB,如下所示(77个没有空格的字符):,作...
    编程 发布于2025-05-03
  • Python读取CSV文件UnicodeDecodeError终极解决方法
    Python读取CSV文件UnicodeDecodeError终极解决方法
    在试图使用已内置的CSV模块读取Python中时,CSV文件中的Unicode Decode Decode Decode Decode decode Error读取,您可能会遇到错误的错误:无法解码字节 在位置2-3中:截断\ uxxxxxxxx逃脱当CSV文件包含特殊字符或Unicode的路径逃...
    编程 发布于2025-05-03

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3