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

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

例子1:

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

例子2:

//改写代码如下:
#include "iostream.h"
#define DEBUG
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
//运行结果为: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 0;
}

如果你在windows平台下编译

程序结果为:1

#ifndef以及#ifndef WIN32相关推荐

  1. 关于#ifndef以及#ifndef WIN32

    一般用法是这样的: 这里可以定义如下: #define XXXXX #ifdef XXXXX 这里做一些操作,这些操作只有在XXXX已经被define的情况下才会执行到.一般还可能有else,如 #e ...

  2. C/C++ 头文件 #pragma once vs #ifndef

    C/C++ 头文件防止被重复包含有2种常用的做法,一种是传统的ifndef: #ifndef HEADER_H #define HEADER_H...#endif // HEADER_H 另一种是稍微 ...

  3. 详解C语言中的#define、#undef、#indef、#ifndef、#else、#endif,#if,#elif

    1. 明示常量#define #define为C语言的一个预处理指令,通常用于进行宏定义.每行#define(逻辑行)一般由以下三部分组成,第一部分是#define指令本身,第二部分为宏,第三部分为称 ...

  4. #ifdef #endif #ifndef 定义+代码详解

    1. 这些代码是什么?属于C/C++中什么类型的词? #ifdef  #endif  #ifndef 属于C/C++预处理指令,常见的预处理指令还包括#include #define #undef # ...

  5. 【转】apache常用配置

    ++如何设 置请求等待时间 在httpd.conf里面设置: TimeOut n 其中n为整数,单位是秒. ++如何接收一个get请求的总时间 接收一个post和put请求的TCP包之间的时间 TCP ...

  6. apache优化管理

    Apache优化管理 内容摘要: Apache是一个历史悠久并且功能十分强大的WEB服务器,但其丰富的功能对于一个新手来说往往不知道从何下手.我个人感觉Apache的设计充分体现了模块化设计的优势,通 ...

  7. 利用小技巧用于跟踪函数的进出过程

    有一次为了调试ACE的代码打开了ACE_TRACE的开关,除了对蜂拥而出的日志输出有印象外还对ACE的函数进出提示产生了好感.对于后台调试的时候,往往必须使用大量的日志跟踪.而简单的加入函数进出的功能 ...

  8. Photoshop插件-charIDToTypeID-PIStringTerminology.h-不同值的解释及参考-脚本开发-PS插件

    文章目录 1.charIDToTypeID 2.四字代码 1.charIDToTypeID int charIDToTypeID (String charID) 从四字符代码转换为运行时 ID. 2. ...

  9. winsock和winsock2冲突

    在初学Windows网络编程时,曾经遇到过两类编译错误(VC6的Build窗口哗哗的显示了102个Errors),都是些类型未定义或者重复定义问题,让我感到很郁闷.这两种错误情况下的第一条错误信息分别 ...

最新文章

  1. android studio类重复,Android Studio 解决重复依赖
  2. Python面向对象案例汇总
  3. 第一个冲刺期的第九天
  4. linux-0.11内核 调试教程+GCC源代码
  5. Excel表格模板:记帐汇总凭证表下载
  6. 数据质量低该如何解决
  7. JAVA常用类之包装类
  8. c语言车牌识别原理,解析车牌识别技术,融合多种算法的原理和过程
  9. 12款在线批量缩短新浪短链接的生成器和接口api
  10. Java面试题----基础
  11. 为什么alert没有弹窗?
  12. 活动实录 | 京东金融PE谈如何颠覆应用运维认知
  13. 今日新出 CV 论文汇总(含医学图像、目标检测、唇语识别、SLAM等)
  14. 解决:Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-defin
  15. Portapack应用开发教程(十二) SSTV接收机 B
  16. 什么是面向对象?面向对象的特征?面向对象和面向过程的区别?
  17. 物质的构成,分子、原子、中子、质子等的关系。
  18. 磁盘问题--系统盘出现只读现象( read-only file system)
  19. linux xrdp 远程桌面,详解如何在Ubuntu 20.04上安装Xrdp服务器(远程桌面)
  20. Android 笑话+html 实例开发(详解)

热门文章

  1. python 冒泡排序算法
  2. 基于微信小程序的长按录音、滑动取消发送功能实现~
  3. 验证MySQL是否安装成功
  4. 牛腩新闻发布系统之技术篇(二)——生成验证码
  5. heic是什么格式?怎么转换成jpg或png?
  6. python爬虫 爬取 豆瓣网 搜索结果 同城活动 数据
  7. OpenGL学习笔记(十三):将纹理贴图应用到四边形上,对VAO/VBO/EBO/纹理/着色器的使用方式进行总结
  8. docker desktop : Hardware assisted virtualization and data execution protection must be enabled
  9. 怎样更爽地看PDF杂志
  10. vue $delete 的使用