其他分享
首页 > 其他分享> > 修复 error C2760: syntax error: unexpected token 'identifier', expected 'type specifier

修复 error C2760: syntax error: unexpected token 'identifier', expected 'type specifier

作者:互联网

微软这个坑货,白瞎我一早上。

问题复现

用vs2019创建一个工程,然后修改windows sdk 到8.1;结果现有代码就编译不通过了,出现以上错误。
使用排除法,缩小问题,最终排除到编译一个仅仅包含#include <windows.h>一行代码的cpp文件也会出问题。

同样的代码,现有工程没问题,新创建的就有问题。
然后开始对比,属性页的各种设置。最后发现有一个不一样。

property -> c/c++ -> language -> conformance mode

修复

以上属性设置为no,问题就消失了。

原因

这个编译选项的官方文档:https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=vs-2019
大致意思如下:

  1. 从vs2017 15.5开始默认开启这个选项
  2. 开启这个选项后,SDK (10.0.16299.0)之前的sdk版本的头文件会编译失败

工程里面选不同的sdk版本,windows.h头文件就属于不同版本的sdk,老的就会编译失败。微软这坑货

标签:选项,specifier,unexpected,头文件,编译,error,conformance,sdk
来源: https://www.cnblogs.com/ConfuciusPei/p/13157191.html