李珍宝的blog

李珍宝的BLOG

  IT博客 :: 首页 :: 联系 :: 聚合  :: 管理
  51 Posts :: 1 Stories :: 160 Comments :: 0 Trackbacks


C++语法部分

1、定义类、数据结构时,使用namespace分隔作用域
2、为会被继承的基类定义虚析构函数,以便delete一个指向派生类的基类指针时,派生类和基类的析构函数能正确被调用
3、使用 static_cast<派生类名*>进行安全的子类化


编译器相关

1、#pragma once 表示该文件只被编译一次

VC特有
1

VARIANT v1;
 v1.vt
=VT_I4;
 v1.lVal
=100;

//错误写法
if(COleVariant(v1)!=COleVariant(v1))
{
     AfxMessageBox(
"不等于");
}


//正确写法
if(!(COleVariant(v1)==COleVariant(v1)))
{
     AfxMessageBox(
"不等于");
}




Debug和Realse的差别

Debug 版本:
 /MDd /MLd 或 /MTd   使用 Debug runtime library(调试版本的运行时刻函数库)
 /Od                 关闭优化开关
 /D "_DEBUG"         相当于 #define _DEBUG,打开编译调试代码开关(主要针对
                     assert函数)
 /ZI                 创建 Edit and continue(编辑继续)数据库,这样在调试过
                     程中如果修改了源代码不需重新编译
 /GZ                 可以帮助捕获内存错误
 /Gm                 打开最小化重链接开关,减少链接时间
                    
Release 版本:      
 /MD /ML 或 /MT      使用发布版本的运行时刻函数库
 /O1 或 /O2          优化开关,使程序最小或最快
 /D "NDEBUG"         关闭条件编译调试代码开关(即不编译assert函数)
 /GF                 合并重复的字符串,并将字符串常量放到只读内存,防止
                     被修改

posted on 2005-09-12 17:03 李珍宝 阅读(461) 评论(0)  编辑 收藏 引用 所属分类: 软件
只有注册用户登录后才能发表评论。