修剪 细枝末节

来源:互联网 发布:算法分析与设计 教材 编辑:程序博客网 时间:2024/06/08 06:42

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++-->预编译头-->不使用预编译头

原创粉丝点击