#define #if #ifdef #ifndef 作用和区别
2016-09-30 09:30
417 查看
[+]本文简单来说明一下
但是也是有区别的一般的, 条件指示符
如果#ifndef…#endif在头文件中,千万不要忽略了头件的中的
所以, 还是把头文件的内容都放在
#if
#define
#ifdef
#ifndef的作用, 以及
#ifdef和
#ifndef的区别.
#define
#define用来进行定义
#define kTabBar_Height 49.0f#define kString @"哈哈哈"12
#if
#if 常量表达式 //程序段1#else // 程序段2#endif 12345它的作用是,如常量表达式的值为真(非0),则对程序段1 进行编译,否则对程序段2进行编译。因此可以使程序在不同条件下,完成不同的功能。
#ifdef
#ifdef <标识符> //程序段1#else //程序段2#endif12345它的作用是:当标识符已经被定义过,则对程序段1进行编译,否则编译程序段2。
#ifndef
#ifndef <标识符> //程序段1#else //程序段2#endif12345只是第一行与前一种形式不同:将
#ifdef改为
#ifndef。它的作用是:若标识符未被定义则编译程序段1,否则编译程序段2。这种形式与第一种形式的作用相反。
但是也是有区别的一般的, 条件指示符
#ifndef检查预编译常量在前面是否已经被定义。#ifndef 的最主要目的是防止头文件的重复包含和编译。
如果#ifndef…#endif在头文件中,千万不要忽略了头件的中的
#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。
所以, 还是把头文件的内容都放在
#ifndef和
#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:
#ifndef <标识>#define <标识>...... ......#endif#endif123456<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:
stdio.h
#ifndef _STDIO_H_#define _STDIO_H_......#endif#endif
相关文章推荐
- 84.#define #if #ifdef #ifndef 作用和区别
- #define #if #ifdef #ifndef 作用和区别
- C++ #if #endif #define #ifdef #ifndef #if defined #if !defined详解
- #ifndef #define #ifdef 的区别与联系
- ifndef/define/endif 和 #ifdef 、#if 作用和用法
- #ifdef #ifndef #if #include #line #pragma #define命令
- C++ #if #endif #define #ifdef #ifndef #if defined #if !defined详解
- #if #ifdef #if defined 区别
- #if define (abc)与#ifdef abc 有什么区别?
- #ifdef #if 等宏的作用和用法
- #if #ifdef #ifndef
- C++中#if #ifdef 的作用
- 条件编译#ifdef MACRO_A和#if defined(MACRO_A)的区别
- C++中#if #ifdef 的作用(转bigpretty的专栏)
- c,c++里面,头文件里面的ifndef /define/endif的作用
- c,c++里面,头文件里面的ifndef /define/endif的作用
- c,c++里面,头文件里面的ifndef /define/endif的作用
- 关于define,ifdef,ifndef和undefine
- #pragma once 和 #ifndef ... #define ... #endif 的区别【转载】
- C++中#if #ifdef的作用