C++中宏的使用技巧
来源:互联网 发布:大连育知同创学费 编辑:程序博客网 时间:2024/06/04 19:14
都是常用技巧,经常用C++的应该都会注意到一两条,为综合整理,非个人独创,从开源代码以及书本论文中抄过来的,数目链接http://blog.csdn.net/iuhsihsow/article/details/7222093如有雷同,纯属巧合。
直接上代码,这次归纳了6点
// Maro.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <Windows.h>#include <iostream>#include <string>using namespace std;// 宏的用法// 1.因为宏是在编译时进行简单的替换,所以很多时候使用宏在突出// 重点参数的同时,也会提高效率。#define MAXHEIGHT 100.0// 不过自定义单位一般使用typedeftypedef int SYSINT;// 2.短小实用的语句#define SAFE_DELETE(p){if(p) delete p; p = NULL;}#define SAFE_RELEASE(p){while(p->Release()>0); p = NULL;}// 3.类的导出的声明,因为编译时会报错,所以先全部注释掉//#ifdef MODULE_EXPORTS//#define MODULE_API __declspec(dllexport)//#else//#define MODULE_API __declspec(dllimport)//#ifdef_DEBUG//#pragma comment(lib, "Moduled.lib")//#else//#pragma comment(lib, "Module.lib")//#endif//#endif// 4.一些编译时的条件语句#ifndef _WIN32_WINNT // 指定要求的最低平台是 Windows Vista。#define _WIN32_WINNT 0x0600 // 将此值更改为相应的值,以适用于 Windows 的其他版本。#endif// 5.实用的小函数// 例如计算某函数的运行时间#define BEGIN_TIME\UINT start = GetTickCount();#define END_TIME(total)\total = GetTickCount() - start;\//当然也可以#define USE_TIME(used, fuc)\UINT begin1 = GetTickCount();\fuc;\used = GetTickCount() - begin1;\// 6.定义基类,派生类的接口,这样可以减少修改量,突出接口 ##表示连接#define INTERFACE_Creature(terminal) \public: \virtual void SetName(const string& strName)##terminal\virtual bool GetName(string &strName) ##terminal#define BASE_CreatetureINTERFACE_Creature(=0;)#define Divd_CreatetureINTERFACE_Creature(;)class BaseClass{BASE_Createture;};class DivdClass : public BaseClass{Divd_Createture;};bool DivdClass::GetName(string& strName){return true;}void DivdClass::SetName(const string& strName){}void Dosth(int time = 500){Sleep(time);}int _tmain(int argc, _TCHAR* argv[]){//1double dLength = 50.0;if (dLength > MAXHEIGHT){// do sth}//2double *p = new double[100];SAFE_DELETE(p);//3//略//4#ifdef DOSTH//DO STH#endif//5int useTime;//我们可以这样BEGIN_TIMEDosth();END_TIME(useTime);//还可以这样USE_TIME(useTime, Dosth())printf("Used time is %d\n", useTime);//6BaseClass *pD = new DivdClass;pD->SetName("test");SAFE_DELETE(pD);// 学而时习之,不亦说乎return 0;}
- c 语言中宏的使用技巧
- c语言中使用环境变量的技巧
- C语言中使用环境变量的技巧
- C语言中使用环境变量的技巧
- c语言中使用环境变量的技巧
- c/c++宏的使用技巧
- c语言中使用环境变量的技巧(转)
- c语言中i++与++i的使用技巧
- C语言中程序调试和宏使用技巧
- C语言中程序调试和宏使用技巧
- C语言的使用技巧
- C++中宏的使用技巧
- linux c中select使用技巧
- linux c中select使用技巧
- c语音宏使用技巧
- 显示C/C++中定义的宏命令文字技巧
- C语言中宏定义的一个技巧用法
- C语言:运行中获取宏名字的技巧
- 【黑马程序员】身份证验证
- c++例题 构造函数(一)
- 挺好的话
- [Android] Ubuntu中下载android源码
- UITableView中设置section内行数以及配置cell的方法
- C++中宏的使用技巧
- 获得js文件引用的参数
- Generic Programming Techniques
- html table复杂表头、列固定
- 手机毒霸去广告功能分析之一:总体分析
- IE下载文件时,下载文件为何出现“无法复制文件:无法读源文件或磁盘
- Using SQL*Loader to create an external table
- android 电视盒下XBMC源码功能的简单分析
- 影响查询效率的select语句