一般用法是这样的:
这里可以定义如下:
#define XXXXX

#ifdef XXXXX
这里做一些操作,这些操作只有在XXXX已经被define的情况下才会执行到。一般还可能有else,如
#else
做另一些操作。。。
#endif

例子1:

#include "iostream.h"
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return ;
}
//运行结果为:Press any key to continue

例子2:

//改写代码如下:
#include "iostream.h"
#define DEBUG
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return ;
}
//运行结果为:Beginning execution of main()
// Press any key to continue

对于#ifndef Win32是指看你的工程有没有预先加入win32的宏定义

这个一般是根据你开始建立新工程时候有没有选择win32来决定的

经常在程序中碰到#ifdef WIN32这样的代码,实际上这提供了一种抽象机制,使代码可以在不同平台间移植. 下面给出一个简单的例子:

#include<iostream>
using namespace std; #ifdef WIN32
#define HAHA 1
#else
#define HAHA 0
#endif int main()
{
int i = HAHA;
cout << i << endl; return ;
}

如果你在windows平台下编译

程序结果为:1

关于#ifndef以及#ifndef WIN32的更多相关文章

  1. #ifndef _LED_H #endif啥意思?

    #ifndef _LED_H#ifndef _LED_H ...... ...... #endif 避免重复引用头文件的内容.

  2. #ifndef 的用法

    背景: 头件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都include了同一个头文件.而编译时,这两个C文件要一同编译成一个可运行文件,会引起大量的声明冲突,这时候需 ...

  3. SQLite XXTea加密学习

    这几天优化数据库读写,移植了xxtea加密到最新的数据库sqlite 3.12.2里,一些好文章放在这里.移植后,数据库读写性能异常优秀! 这几天又发现,数据库还是发生了无法写入情况,数据库崩溃掉了. ...

  4. Apache服务器配置技巧

    1.如何设置请求等待时间 在httpd.conf里面设置: TimeOut n 其中n为整数,单位是秒. 设置这个TimeOut适用于三种情况: 2.如何接收一个get请求的总时间 接收一个post和 ...

  5. libCEF总结01下载、编译、入门

    目 录 第1章 下载    1 1.1 下载    1 1.2 合并    1 第2章 cmake    4 2.1 编译简介    4 2.2 下载cmake    4 2.3 运行cmake    ...

  6. 算法库:Matlab与C++混合编程

    算法库:Matlab与C++混合编程 最近做光流算法预演过程中,下载的源码中涉及到了Matlab和C++的混合编程.在同事Matlab2014的环境下,程序到是一下就运行通过了.但在我这Matlab2 ...

  7. 跨平台的zip文件压缩处理,支持压缩解压文件夹

    根据minizip改写的模块,需要zlib支持 输出的接口: #define RG_ZIP_FILE_REPLACE 0 #define RG_ZIP_FILE_APPEND 1 //压缩文件夹目录, ...

  8. Static, Shared Dynamic and Loadable Linux Libraries

    转载:http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html Why libraries are used: Th ...

  9. [转]C/C++:构建你自己的插件框架

    本文译自Gigi Sayfan在DDJ上的专栏文章.Gigi Sayfan是北加州的一个程序员,email:gigi@gmail.com. 本文是一系列讨论架构.开发和部署C/C++跨平台插件框架的文 ...

随机推荐

  1. c# winform 自动关闭messagebox 模拟回车

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. 转载:mysql如果数据不存在,则插入新数据,否则更新的实现方法

    转自:http://www.jb51.net/article/28885.htm //如果不存在,则插入新数据 $sql = "INSERT INTO {$ecs->table(‘ca ...

  3. 使用Ultra Librarian转换芯片的Altium Designer封装格式

    第一步:找到对应芯片的CAD文件,以OPA350为例: http://www.ti.com/product/opa350   RE: 使用Ultra Librarian转换TI芯片的Altium De ...

  4. UIScrollView 的代理方法简单注解

    //减速停止了时执行,手触摸时执行执行 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;    //只要滚动了就会触发 ...

  5. React中props与state

    以下内容均为个人理解. 1.state: 在react中,state可以看成管理页面状态的集合(实则一个对象而已),库里面的成员均为页面渲染变量,整个页面为一个状态机,当state发生变化时,页面会重 ...

  6. 如何用MathType快速输入公式

    我们在写论文的时候,如果涉及到数学公式的话,我们一般都会使用MathType软件,但同时对于一些新手来说不太用使用此款软件,输入公式时就会很慢,今天教大家如何利用MathType快速输入公式. 具体方 ...

  7. _T("D:\\122.txt")【字符集问题】或【类型转换问题】

    项目->属性->常规->字符集->使用多字节字符集!时用_T("Filename"), 貌似不是字符集的问题!  1.使用替换,,,后, _T(" ...

  8. [转]wcout输出中文却不显示出来

    准备使用UNICODE来写个控制台测试程序发现,cout无法输出UNICODE的中文字符.查找C++标准看到,其提供了wcin.wcout.wcerr.wclog用于处理wchar_t字符的输入输出. ...

  9. Java 应用程序设计规范

    1.能在程序中取的产生就从程序中取.不用客户输入(减少客户输入). 比如客户号 信息 等. 2.如果有参数输入尽可能减少参数输入的个数(4个->0个): 3.验证入参(尽可能的实现输入参数的正确 ...

  10. [dubbo] dubbo 基础使用

    Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候 ...