标识符: 找不到标识符

即使使用自变量相关的查找,编译器也无法解析对标识符的引用。

备注

若要修复此错误,比较使用标识符到标识符声明的大小写和拼写。 验证范围解析运算符和命名空间using 指令的用法正确。 如果在标头文件中声明该标识符,请验证引用标识符之前已包含该头。 如果标识符旨在是外部可见的请确保它在使用它的任何源文件中声明。 此外请检查标识符声明或定义不排除通过条件编译指令。

若要从 Visual Studio 2015 中的 C 运行时库中删除过时函数的更改可能会导致 C3861。 若要解决此错误,删除对这些函数的引用,或将它们替换为其安全的替代方法,如果有。 有关详细信息,请参阅过时函数。

如果项目在迁移后显示从旧版本的编译器错误 C3861,则可能产生与支持的 Windows 版本相关的问题。 Visual C++ 不再支持面向 Windows 95、Windows 98、Windows ME、Windows NT 或 Windows 2000。 如果你的 WINVER 或 _WIN32_WINNT 宏分配给了这些 Windows 版本中的一个,则必须修改宏。 有关详细信息,请参阅修改 WINVER 和 _WIN32_WINNT。

示例

未定义标识符

下面的示例生成 C3861,因为未定义标识符。

C++复制

// C3861.cpp
void f2(){}
int main() {f();    // C3861f2();   // OK
}

不在作用域的标识符

下面的示例生成 C3861 因为标识符仅在其定义,文件作用域中可见,除非它在使用它的其他源文件中声明。

C++复制

// C3861_a1.cpp
// Compile with: cl /EHsc /W4 C3861_a1.cpp C3861_a2.cpp
#include <iostream>
// Uncomment the following line to fix:
// int f();  // declaration makes external function visible
int main() {std::cout << f() << std::endl;    // C3861
}

C++复制

// C3861_a2.cpp
int f() {  // declared and defined herereturn 42;
}

所需的 Namespace 限定

C + + 标准库中的异常类需要std命名空间。

C++复制

// C3861_b.cpp
// compile with: /EHsc
#include <iostream>
int main() {try {throw exception("Exception");   // C3861// try the following line instead// throw std::exception("Exception");}catch (...) {std::cout << "caught an exception" << std::endl;}
}

已过时的函数调用

已从 CRT 库中删除过时函数。

C++复制

// C3861_c.cpp
#include <stdio.h>
int main() {char line[21]; // room for 20 chars + '\0'gets( line );  // C3861// Use gets_s instead.printf( "The line entered was: %s\n", line );
}

ADL 和友元函数

下面的示例生成 C3767,因为编译器无法使用的自变量依赖于查找FriendFunc:

C++复制

namespace N {class C {friend void FriendFunc() {}friend void AnotherFriendFunc(C* c) {}};
}int main() {using namespace N;FriendFunc();   // C3861 errorC* pC = new C();AnotherFriendFunc(pC);   // found via argument-dependent lookup
}

若要修复此错误,声明友元类作用域中的,并在命名空间范围中定义它:

C++复制

class MyClass {int m_private;friend void func();
};void func() {MyClass s;s.m_private = 0;
}int main() {func();
}

对于我遇到的问题,就是函数的先定义再使用....(First)

Mr.J--C语言编译错误C3861相关推荐

  1. c语言编译错误 原文,C语言常见错误与警告

    C语言常见错误与警告 C语言常见错误与警告C语言常见错误: 1 invalid type argument of '->' (have 'struct qstr_xid_element') 这种 ...

  2. Mr.J--C语言编译错误C2039

    编译器错误 C2039 identifier1: 不是 identifier2 的成员 代码错误地调用或引用的结构. 类或联合成员. 示例 下面的示例生成 C2039. 复制 // C2039.cpp ...

  3. c语言无效参数视为严重错误,C语言编译错误:错误:‘-’参数类型无效(有‘int’)...

    一.编译错误代码: #include int main() { #define offsetof(type, member) ((size_t) &((type *)0->member) ...

  4. c语言编译免疫算法亲和力,蚁群算法模拟系统设计及实现.doc

    J I A N G S U U N I V E R S I T Y 本 科 毕 业 论 文 蚁群算法模拟系统的设计与实现 Ant Colony Simulation System Design and ...

  5. oj上c语言编译错误,名字的漂亮度(华为OJ)C语言版本(提示格式错误,但是编译器没有报错,知道的网友提个意见)...

    描述 给出一个名字,该名字有26个字符串组成,定义这个字符串的"漂亮度"是其所有字母"漂亮度"的总和.每个字母都有一个"漂亮度",范围在1到 ...

  6. c语言Winmain 错误,C语言编译错误 undefined reference to `WinMain@16'

    1.把主函数 main() 写成了mian() 2.没写主函数main() 3.建的不是控制台应用程序 console application 4.[code] #include int main() ...

  7. c语言编译错误信息详细解释,C语言编译错误信息说明大全

    C说明 #operator not followed by maco argument name #运算符后没跟宏变元名 Ambiguous operators need parentheses 不明 ...

  8. 创建c语言编译错误,创建C语言项目时,无法编译成*.exe文件,提示系统找不到指定的文件...

    你好: 这是配置管理器,没看懂 https://skydrive.live.com/redir?resid=56EDD5214D16058E!172&authkey=!AFt6lfaQijGu ...

  9. 有没有检查c语言编译错误的软件,求大佬解答,为什么这个程序编译软件检查不出错误...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include /* malloc()等 */ #include #include #include /* exit() */ #de ...

最新文章

  1. 安装和使用git遇到的问题总结
  2. 【日常分享1】三步,有效去除网页广告,完美过滤视频广告
  3. 说说JS中的浅拷贝与深拷贝
  4. 以Attribute加上Header验证
  5. (包含重力矢量)Pygame粒子模拟
  6. Android使用MPAndroidChat
  7. 64 modol1模型
  8. word-break:break-all和word-wrap:break-word的区别
  9. Python使用ZeroMQ/inproc模式实现多线程服务端
  10. you are not allowed to push code to protected branches on this project
  11. 谢旭升《操作系统教程》课后习题解答
  12. 在线正则表达式测试器(JavaScript)
  13. 堂堂985毕业就失业,我用3000块买大厂Offer
  14. Linux进程通信的试验
  15. 【C++从青铜到王者】第十八篇:C++之多态
  16. Linux 2.6 CFS 调度算法内幕
  17. 各代iphone尺寸_历代16款iPhone厚度对比:iPhone X 5年来最厚
  18. 纵观无盘系统发展历史
  19. Elastic Stack容器化部署拓展(Https、AD域集成)并收集Cisco设备的日志信息
  20. 中国无线音乐搜索综合测评结果

热门文章

  1. 微软(中国)CTO韦青:人工智能时代还没有真正到来
  2. 【OpenCV】OpenCV实战从入门到精通之 -- 离散傅里叶变换相关函数详解
  3. 全新胶囊网络Efficient-CapsNet效果显著!
  4. 刘光聪 | TensorFlow:揭示多语言编程的奥秘
  5. access数据库应用系统客观题_随访数据库的建立:易侕DataWeb系统应用
  6. c++ getline 读不到东西_C++,使用getline一直读取不到文件中的内容
  7. python路径拼接os.path.join()函数完全教程_详解python路径拼接os.path.join()函数的用法...
  8. CSPNet论文笔记
  9. ResNet原理和实现
  10. 《Node.js区块链开发》