热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VisualStudio2017不支持C11新功能_Generic

如何解决《VisualStudio2017不支持C11新功能_Generic》经验,为你挑选了2个好方法。

有人可以建议为什么Visual Studio 2017不支持C11新功能_Generic吗?我发现它是一个非常有用的功能,但不能在Visual Studio 2017中使用.

以下是示例代码:

#include 
#define MYTYPE(X) _Generic((X),\
int:"int",\
float:"float",\
double:"double",\
default:"other")

int main(void)
{
      int d = 5;
      printf("%s\n", MYTYPE(d));
      printf("%s\n", MYTYPE(2.0*D));
      return 0;
}

编译器会给出以下警告和错误:

1>------ Build started: Project: Project1, Configuration: Debug Win32 ------
1>predef.c
1>c:\users\mia\documents\c\listing 16.13\project1\project1\predef.c(11): warning C4013: '_Generic' undefined; assuming extern returning int
1>c:\users\mia\documents\c\listing 16.13\project1\project1\predef.c(11): error C2059: syntax error: 'type'
1>c:\users\mia\documents\c\listing 16.13\project1\project1\predef.c(12): error C2065: 'D': undeclared identifier
1>c:\users\mia\documents\c\listing 16.13\project1\project1\predef.c(12): error C2059: syntax error: 'type'
1>Done building project "Project1.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

msc.. 7

Visual Studio 2017不支持任何C11功能.您可以将Intel C编译器插入Visual Studio(支持C11)或使用ClangGcc.

Quora回答:

在Visual Studio中添加内置的CLANG支持

创建新项目

在"平台工具集"的项目属性(常规)中选择"Visual Studio 2017 - 与Microsoft CodeGen一起使用(v141_clang_c2)

在C/C++"语言"部分打开"C语言"标准列表,在这里您可以找到所有C标准今天相关的C89,C99,C11 ...选择您想要的那个

在此之后(与以往一样)VS2017将编译扩展名为".c"的文件作为C,将".cpp"扩展名编译为C++.

不要忘记,也可以在每个文件的基础上更改属性.


Lundin.. 5

这是因为Microsoft从未优先考虑符合C语言标准.在过去的20年左右,他们主要关注的是C++.因此Visual Studio应被视为C++编译器.

在"C模式"下,它仍然对第一个C标准C90有疑问.他们花了很长时间才试图获得C99合规性,他们仅在近几年才为此做出了一些努力.它仍然不完全符合C99标准.据我所知,没有C11或C17合规计划.

因此,如果标准一致性对您很重要,则必须寻找另一个C编译器.



1> msc..:

Visual Studio 2017不支持任何C11功能.您可以将Intel C编译器插入Visual Studio(支持C11)或使用ClangGcc.

Quora回答:

在Visual Studio中添加内置的CLANG支持

创建新项目

在"平台工具集"的项目属性(常规)中选择"Visual Studio 2017 - 与Microsoft CodeGen一起使用(v141_clang_c2)

在C/C++"语言"部分打开"C语言"标准列表,在这里您可以找到所有C标准今天相关的C89,C99,C11 ...选择您想要的那个

在此之后(与以往一样)VS2017将编译扩展名为".c"的文件作为C,将".cpp"扩展名编译为C++.

不要忘记,也可以在每个文件的基础上更改属性.



2> Lundin..:

这是因为Microsoft从未优先考虑符合C语言标准.在过去的20年左右,他们主要关注的是C++.因此Visual Studio应被视为C++编译器.

在"C模式"下,它仍然对第一个C标准C90有疑问.他们花了很长时间才试图获得C99合规性,他们仅在近几年才为此做出了一些努力.它仍然不完全符合C99标准.据我所知,没有C11或C17合规计划.

因此,如果标准一致性对您很重要,则必须寻找另一个C编译器.


推荐阅读
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文记录了作者对x265开源代码的实现与框架进行学习与探索的过程,包括x265的下载地址与参考资料,以及在Win7 32 bit PC、VS2010平台上的安装与配置步骤。 ... [详细]
  • 原文地址http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/最开始时 ... [详细]
  • 线程漫谈——线程基础
    本系列意在记录Windwos线程的相关知识点,包括线程基础、线程调度、线程同步、TLS、线程池等。进程与线程理解线程是至关重要的,每个进程至少有一个线程,进程是线程的容器,线程才是真正的执行体,线程必 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
author-avatar
Triste夏木_668_365
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有