文档章节

VC中的预处理和宏定义

来来叔叔
 来来叔叔
发布于 2017/08/04 23:57
字数 158
阅读 1
收藏 0
 

自己在VC中有时能用到的。

1.避免头文件被重复编译
#ifndef COMDEF_H
#define COMDEF_H
//头文件内容
#endif


2.源代码版本控制
main()
{
。。。。。。
#ifdef _WINDOWS_PLATFORM
HeapAlloc(5);
#else
malloc(5);
#endif
。。。。。
}

或者

#if expressin1

            your code1

#elif expression2

            your code2

#else

            your code3

#enif


3.定义表达式或常量
#define MAX( x, y ) ( ((x) > (y)) ? (x) : (y) )
#define pi 3.14159

4.重新定义一些类型
typedef unsigned char      boolean;
5.其它
预定义的宏,#Pragma等

详细可以参考:

VC中预处理指令与宏定义的妙用
http://dev.yesky.com/201/2559701.shtml
C语言宏定义技巧
http://blog.21ic.com/user1/69/archives/2006/13695.html


© 著作权归作者所有

上一篇: LMS算法
来来叔叔
粉丝 0
博文 100
码字总数 55732
作品 0
广州
高级程序员
私信 提问
C/C++ 中宏与预处理使用方法大全 (VC)

原文:C/C++ 中宏与预处理使用方法大全 (VC) 作者:Breaker C/C++ 中的宏 (#define) 与预处理 (#if/#ifdef/#pragma) 的使用方法大全、使用技巧 开发环境:VC 2005 关键字:宏, 预定义宏, 预处...

晨曦之光
2012/05/23
10.6K
0
关于GCC和C99中可变参数宏

参考文章:http://blog.csdn.net/woshinia/article/details/8255693 首先介绍一下预处理连接符“##”,其作用是将两个符号连接成一个,即当可变参数VAARGS_的个数为0时,##负责把前面多余的‘...

雪色梦貘
2014/03/12
0
0
C++ primer第二次阅读学习笔记(第6章)

第六章 在switch中只有在最后一个case或是default语句之后才能定义变量,之所以这样规定是为了避免代码跳过变量定义和初始化。 如switch(val) { case xx: break; case yy: int i;//错误,该变...

长平狐
2012/10/08
81
0
使用#定义方便控制版本号的宏

转载自: http://www.yonsm.net/read.php?141 一个 VC Project 中,可能有很多地方需要用到版本号,比如 About 对话框、版本资源等。如果每次版本更改都一一去改变这些值,不但非常麻烦,而且...

长平狐
2013/01/11
223
0
VC++的Unicode编程

一、什么是Unicode 先从ASCII说起,ASCII是用来表示英文字符的一种编码规范。每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是 255(00H—FFH)。其实,英文字符并没有那么...

长平狐
2012/09/03
152
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部