warning:C4530 C++ exception handler used, but unwind semantics are not enabled
:STL中的很多地方使用了异常处理机制(即try…throw…catch语法)的警告信息
:编译器设置参数:/GX
:消除办法:#pragma warning(disable: 4530)。
warning C4786: '……' : identifier was truncated to '255' characters in the debug information
:因为编译器在Debug状态下编译时,把程序中所出现的标识符长度限制在了255个字符范围内。如果超过最大长度,这些标识符就无法在调试阶段查看和计算了。而在STL程序中大量的用到了模板函数和模板类,编译器在实例化这些内容时,展开之后所产生的标识符往往很长(没准会有一千多个字符!)。如果你想认识一下这个warning的话,很简单,在程序里加上如下一行代码:
vector<string> string_array; // 类似于字符串数组变量
:消除办法:#pragma warning(disable: 4786)。
编译器的“>>”陷阱
:typedef list< CAdapt< CComPtr<IVaria> > >::iterator it;
:如果你没有加空格的话,编译器会把">>"误认为是单一标识(看起来很像那个数据流输入操作符">>")。
:为了回避这个难题,C++要求使用者必须在两个右尖括号之间插入空格。
结束cin字符串输入
:cin读取文件时遇到文件结束符EOF就停止了
:可遇到while(cin>>word){}应该怎么用键盘停止输入呢?
:因为字符集不一样所以在不同平台上输入结束符的方式也不一样
:Windows中用Ctrl+Z Unix中用Ctrl+D
:一些E文说明
:Dev-C++
Type: Enter Control-z Enter
MS Visual C++
Type: Enter Control-z Enter Enter
Reportedly there is a Microsoft patch that can be applied so that only one Enter is required after the Control-z. I wouldn't bother.
Other systems
Some may use other characters: control-D then Enter, or control-D followed by a control-Z, or ... .
取消预编译头
:在用VC编译一些C语言写的工程时由于没有包含头文件"stdafx.h"而产生错误
:=>fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾
:就是".c"文件不能通过
:=>fatal error C1853: “Debug/test.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
:要解决这一问题,只需在工程属性中更改C/C++预编译头设置
:VC6:菜单-->project-->project properties-->C/C++-->Precompiled header-->Create/Use Precompiled Header-->Not using....
:VC2003:菜单-->XX属性-->C/C++-->预编译头-->不使用预编译头
修剪 细枝末节
最新推荐文章于 2016-11-22 10:19:42 发布