加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

__func__ C 11函数的本地预定义变量,不会编译

发布时间:2020-12-16 05:55:10 所属栏目:百科 来源:网络整理
导读:使用默认内置Visual Studio 2012(v110)编译器或2012年11月CTP(v120_CTP_Nov2012)编译器的Visual Studio 2012 Professional(安装了Update 1),不会编译函数的__func__ C 11本地预定义变量.但是,编辑不会在__func__下面投诉任何红色的下划线. __func__应该给它
使用默认内置Visual Studio 2012(v110)编译器或2012年11月CTP(v120_CTP_Nov2012)编译器的Visual Studio 2012 Professional(安装了Update 1),不会编译函数的__func__ C 11本地预定义变量.但是,编辑不会在__func__下面投诉任何红色的下划线. __func__应该给它的包含函数的名称,在这种情况下是foo,但是这两者都不编译也不会使编辑器抱怨:
#include <iostream>
using namespace std;

void foo()
{
    cout << __func__ << endl;
    return;
}

int main()
{
    foo();
    return 0;
}

它给出编译器错误:

error C2065: '__func__' : undeclared identifier

我在我的代码中缺少某些东西,还是将来会更新?

解决方法

一般MSVC的C99支持相当差;您最好的选择是使用MSVC特定的__FUNCTION__宏.详见这个问题: Cross-platform defining #define for macros __FUNCTION__ and __func__

更新(2015-06-22):Visual Studio 2015支持__func__,请参阅blog post

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读