许多头文件中都有#ifndef XXX_H #define XXX_H #endif XXX_H.请问我什么要这么定义?XXX_H有是什么东西? [问题点数:20分,结帖人lieyu063]

Bbs1
本版专家分:20
结帖率 93.81%
Bbs2
本版专家分:118
Bbs4
本版专家分:1108
Blank
黄花 2004年10月 Java大版内专家分月排行榜第二
Bbs1
本版专家分:20
Bbs2
本版专家分:232
Bbs1
本版专家分:74
Bbs1
本版专家分:35
Bbs2
本版专家分:291
Bbs1
本版专家分:95
Blank
黄花 2005年9月 Linux/Unix社区大版内专家分月排行榜第二
2005年5月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2005年8月 Linux/Unix社区大版内专家分月排行榜第三
2005年6月 Linux/Unix社区大版内专家分月排行榜第三
Bbs1
本版专家分:65
Bbs1
本版专家分:13
其他相关推荐
#ifndef #define 中的头文件名为什么是__xxx_h
这样定义是为了避免重复定义。重复声明可以,但是重复定义是不可以的。 重复声明只要名称完全相同即可。但是重复定义会出现编译错误的,即使同名也不可以。 多次包含可能会引来重复定义。比如a.h中包含了b.h和c.h,而c.h包含了b.h,那么编译 a.h时,b.h被编译了2遍。我们熟知b.h头文件中有FILE类型的定义,于是FILE被定义了2遍 在b.h头文件中用 #ifndef   __b_
头文件中的 #ifndef/#define/#endif什么
在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量重定义的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。 方法:例如要编写头文件test.h 在头文件开头写上两行: #ifndef _TEST_H #define _TEST_H//一般是文件名的大写 头文件结尾写上一行:#endif这样一个工程文件
头文件ifndef/define/endif的作用
原文地址:头文件ifndef/define/endif的作用作者:Love笨笨猪 例如:要编写头文件test.h          在头文件开头写上两行:           #ifndef _TEST_H           #define _TEST_H//一般是文件名的大写          ············          ···
单片机C语言头文件 #ifndef/#define/#endif使用详解
本文主要介绍了为什么头文件中使用#ifndef/#define/#endif
C/C++头文件中的ifndef/define/endif的作用有哪些?
功能如果一个项目中存在两个C文件,而这两个C文件都include(包含)了同一个头文件,当编译时,这两个C文件要一同编译成一个可运行文件,可能会产生大量的声明冲突,而解决办法是把头文件的内容都放在#ifndefendif中,一般格式如下:#ifndef<标识>#define<标识>......#endif解释为:当标识没有由#define定义过时,则定义标识。<标识...
C++头文件中加#ifndef #define #endif的作用浅析
通常,在做一个项目工程时,往往有很多很多的文件,而由于面向对象的特性,为实现模块化和编写出稳定的、可读性高、易维护的、健壮的代码,往往将类封装起来。假如某个头文件被多个文件包含使用,当把这些文件编译链接成一个可执行文件时,就会出现大量重复定义的错误,而在头文件中加#ifndef #def #endif能避免头文件的重定义。 例:如编写头文件complex.h 在头文件开头写上两行
#define#ifndef#endf 防止头文件重复包含,心得,供大家参考
#idndef 宏名 #define 宏名 ********* ********* #endif
.h头文件中的ifndef/define/endif 的作用
13. .h头文件中的ifndef/define/endif 的作用? 答:防止该头文件被重复引用。 14. #i nclude 与 #i nclude "file.h"的区别? 答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。 15.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern
C语言中#ifdef,#ifndef和#endif的作用
1、用于注释掉一段代码 我们自己编写程序的时候,需要看到一系列的调试代码,但是发给客户的时候,客户可不希望看到什么什么OK的代码,所以我们希望能很容易地注释掉这段代码。 这时需要用到预处理指令 #ifdef 和 #endif : #include <stdio.h> #define CONFIG_DEBUG int main(){ FILE *fp; fp=fo...
#pragma once 与#ifndef,#define,#endif的差别 、重复定义等相关问题
.cpp文件是一个编译单元,obj文件是编译的输出文件,链接是将所有地obj文件链接起来组成一个exe。链接过程中如果有不同的cpp文件中包含相同的函数名,变量名(注意不包括变量的引用、函数的声明、以及static函数和变量),链接将会报重复定义的错误,很多时候如果把函数和变量的定义写在.h文件,多个cpp包含此.h文件,就极可能会发生这样的错误,所以应该实现写在.cpp中,在.h中声明。有一种情
头文件中#ifndef后面的如何写及什么作用
头文件中加入#ifndef或#ifdef等宏定义,是为了防止重复声明。         我们知道,头文件一般是用来声明的,会被其他的源文件和头文件include,当被多个文件include的时候就会造成重复声明。 为了使得只声明一次,引入前面所说的宏定义,一般以文件名大写和_来当宏的名字。         这个宏是给预处理器用的,通常预处理变量用大写,所以这些宏定义都用大写。为了方便,一般将
面试题5:头文件中的ifndef/define/endif什么作用?
  在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量重定义的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。 方法:例如要编写头文件test.h 在头文件开头写上两行: #ifndef _TEST_H #define _TEST_H//一般是文件名的大写 头文件结尾写上一行:#endif这样一个工...
ifndef/define/endif 结构产生预处理块
最近在看一些C++编程规范,提到了ifndef/define/endif结构产生预处理块,想想自己在原来的代码中虽然知道这个但是并没有完全使用过,特地试了一下: 解释: 为什么要用到这个ifndef/define/endif结构呢?因为很可能一个头文件在一个.cpp文件中被多次引用,这种问题是由于#include嵌套所造成的,例如,有三个类a,b,c,在b.h中引用了a.h,在c.h中包含了a
定义(#ifndef+#define+#endif)的作用
本文介绍#ifndef、#define、#endif三者一起使用的宏定义的作用。在头文件中,我们经常会在头文件中见到#ifndef、#define、#endif三者一起使用的宏定义。例如,在头文件xxx.h中(此样式可参考):#ifndef __XXX_H__ #define __XXX_H__ #include <iostream> // 其他代码 #endif使用#ifndef...
单片机中#ifndef,#define用法
文件中的#ifndef  头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。  还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:  #ifndef   #define  
说说条件编译#ifndef,#define,#endif
头文件被多次引用导致重复定义C++编程中经常会遇到的一个问题,就是由于头文件被多次include而导致的符号重定义出错,下面就聊聊这个问题。 贴出一组导致重复引用导致出错的demo//head.h 头文件#ifndef HEAD_H #define HEAD_H#include using namespace std;int g_number; void func1();#
#ifdef、#else、#endif的运用---极为方便的全局变量的定义和声明
在模块编程的过程中,我们经常会遇到全局变量的定义和声明,一般我们会在某个模块中定义,在别的模块中使用时在其头文件中声明即可 虽然这样可以达到目的,但是显得比较麻烦,现在我利用#ifdef、#else、#endif方便快捷的实现全局变量的定义和声明 如:我们把需要的全局的变量都放着同一个头文件头文件:includes.h #ifdef   GLOBALS #define  OS_EXT
#ifdef WIN32有什么作用?
经常在程序中碰到#ifdef WIN32这样的代码,实际上这提供了一种抽象机制,使代码可以在不同平台间移植. 下面给出一个简单的例子: #include using namespace std; #ifdef WIN32 #define HAHA 1 #else #define HAHA 0 #endif int main() { int i = HAHA; co
什么在.h文件中使用#ifndef CLASS_H和#define CLASS_H?
一般在.h文件中都会看到 #ifndef FILE_H #define FILE_H /* ... Declarations etc here ... */ #endif那么为什么要在.h文件中这么声明呢? 这是一种防止头文件被多次包含的预处理技术,由于各种原因可能是有问题的。在编译项目时,编译每个.cpp文件(通常)。简单来说,这意味着编译器会把你的.cpp文件,打开任何文件#inclu
头文件ifndef define endif 作用
#ifndef HELLO_WORLD_H_ #define HELLO_WORLD_H_ #endif 用来保护头文件,防止重复编译。 这样回答有问题吗?
条件编译 #ifndef _HEAD_H...中下划线的理解!
条件编译 #ifndef _HEAD_H...中下划线的理解!一、下划线“__”属于编程风格的内容,对程序没有影响。不用下划线也可以,用几个下划线也由个人习惯。二、其实质是一个宏名。由此我们可以防止发生重复定义或声明。假设你的头文件名为head.h,根据习惯,我们声明一个宏HEAD_H,对应这个头文件,在头文件中开始的地方和结尾的地方加上 对HEAD_H的声明和判断,头文件Head.h如下: #
浅谈#ifndef,#define,#endif的作用和用法
文件中的#ifndef.#define, #endif 很关键,是为了避免多重包含,比如如果两个C文件同时包含同一头文件,那么就会出现问题,所以使用这种方法可以有效避免这种情况。一般用法:以add.h为例#ifndef _ADD_H_ #define _ADD_H_ //在这里包含add.h的类定义及变量和函数的声明 比如函数声明:int add(int a ,int b); //分号是必须...
ifdef、ifndef使用规则,FPGA开发工具分享
verilog中使用ifdef/else/endififndef/else/endif的语句进行预编译处理,可以对指定的程序段进行编译,以便于在不同工程模式下灵活的切换代码,实现不同的功能需求。代码示意如下: ifdef/else 如果定义了宏定义STRING,则综合工具会编译code_0段,若未定义STRING,则编译code1段。 `ifdef STRING code_0; `e
在C语言头文件里我们如何应用#ifndef
举个例子 我在led.h 头文件这么写 #ifndef __LED_H #define __LED_H ....... ...... #endif 1 这样写是如何完成防止重复定义功能的 2 __LED_H 这个宏定义我可以随便命名吗,还是这个#define后面的名字和 头文件led.h 得名字村子某种命名约束 3 在应用头文件中 ifdef 是如何公工作的 答案
什么头文件都有 #ifndefine #define #endif
许多人都知道,下面的语句把.h文件包括起来,目的是为了避免重复包含: #ifndef   _my_head_file_h #define   _my_head_file_h ... ... ... #endif 问题是:头文件一般都是变量、函数的声明,重复声明并没有问题啊! 例1: typedef   void   myfunction(); typed
C++ 防止头文件被重复包含(#pragma once 与 #ifndef 的区别)
为了避免同一个文件被include多次,可以使用以下两种方式来处理: 1   #ifndef方式 2   #pragma once方式 在能够支持这两种方式的编译器上,二者并没有太大的区别,但是仍然还是有一些细微的区别:     方式一:      #ifndef __SOMEFILE_H__     #define __SOMEFILE_H__     ... ... // 一
INT64_C的含义
其中定义如下: #ifndef INT64_C #define INT64_C(c) (c ## LL) #define UINT64_C(c) (c ## ULL) #endif 所以意思就是
STM32头文件学习 SYS.H
感谢中国电子论坛的我爱你的吻 /*sys.h   今天我们来讲讲这个头文件*/ #ifndef __SYS_H   //头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不
C#预处理指令中if ifdef ifndef
凡是以"#"开头的均为预处理命令 1. 第一种形式: #ifdef 标识符  程序段1  #else  程序段2  #endif  它的功能是,如果标识符已被 #define命令定义过则对程序段1进行编译;否则对程序段2进行编译. 2. 第二种形式:  #ifndef 标识符  程序段1  #else  程序段2  #endif  与第一种形式的区别是将"ifde
条件#ifdefine与#endif的作用
好久没写代码,基本的东西都忘了。今天工作中犯了这个小错误,记下来,顺便温习一下。条件编译中最常见的一种就是如下这种情况:#ifdef 标识符 程序段1 #else 程序段2 #endif意思是,如果定义了标识符就执行程序段1,否则就执行程序段2。其中的else可有可无,看自己代码逻辑情况而定。稍微再引申一点点就是#ifndef的使用常见于头文件中,用于防止出现重复定义的问题。一般使用形式如下:#i...
C++中#ifndef, #define, #endif的作用和使用的注意事项
在C++语言编程中,我们经常会接触到头文件,比如说声明类,或者声明命名空间等,而每次在编写xxx.h的头文件时,编程书上都会让我们在代码的前后加上如下的三句代码: #ifndef XXX_H_ #define XXX_H_ …… #endif 其中……代表中间具体的功能语句。 那么这三句代码有什么作用呢?为什么每次自定义头文件时都要求加上呢? 其实这几句代码的主要作用的官方解释是:为了防...
什么用了#ifndef还说我重复定义
在keil4中的头文件已经使用宏开关#ifndef、#endif,但还是出现重复定义的问题: 因为#ifndef只能保证重复包含时,只包含一次。但在不同的C文件是分别进行编译的,所以另一个C语言里的#define对另一个C文件不起作用。也就是说正确的作法应该这样: 1)在头文件里只声明不定义 2)把定义定义在C文件里 学习遇到的一点问题,找到的一点资料共享,就当笔记~~~~~~
关于Windows中一些宏的含义
  参考来源1:http://www.cnblogs.com/zhcncn/archive/2013/05/21/3091052.html 参考来源2:http://blog.csdn.net/gaojinshan/article/details/8492748 一、关于Windows中一些宏的含义 1. _WIN32_WINDOWS,_WIN32_WINNT,WINVER 这三个宏其实...
定义头文件ifndef/define/endif的作用
例如:要编写头文件test.h          在头文件开头写上两行:           #ifndef _TEST_H           #define _TEST_H//一般是文件名的大写          ············          ············          头文件结尾写上一行:           #endi
头文件中的ifndefdefineendif
#ifndef、#def、#endif说明     你所遇到的这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。      条件编译命令最常见的形式为:      #ifd
高质量C++_C编程指南.doc
经典论述了,如下问题: BOOL , float, 指针变量 与“零值”比较的 if 语句。 头文件中的 ifndef/define/endif什么用? #include 和 include “filename.h” 有什么区别? const 有什么用途?
c++中类模板、hpp文件、与预编译相关的#ifndef#define#endif 相关
*.hpp文件: 1、是Header   Plus   Plus 的简写。 2、与*.h类似,hpp是C++程序头文件 。 3、是VCL专用的头文件,已预编译。 4、是一般模板类的头文件。 5、一般来说,*.h里面只有声明,没有实现,而*.hpp里声明实现都有,后者可以减少.cpp的数量。 6、*.h里面可以有using   namespace   std,而*.h
C语言终极面试宝典(必看)
C语言终极面试宝典(必看) 关键字static的作用是什么? “引用”与指针的区别是什么? .h头文件中的ifndef/define/endif 的作用? 描述实时系统的基本特性 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
Verilog中条件编译命令 `ifdef、`else、`endif 用法之1
一般情况下,Verilog HDL源程序中所有的行都参加编译。但是有时候希望对其中的一部份内容只有在条件满足的时候才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足条件时对一组语句进行编译,当条件不满足时则对另外一组语句进行编译。 条件编译命令的几种形式: (1)`ifdef宏名(标识符)         程序段1        `else    
头文件什么要加#ifndef #define #endif
文章属于转载:http://blog.csdn.net/buyong/article/details/3945110rnrn当你用VC的菜单新增一个类,你会发现自动生成的代码总是类似下面的样子:rn#if !defined(AFX_XXXX__INCLUDED_)rn#define  AFX_XXXX__INCLUDED_rn具体代码rn#endifrn       这是为了防止头文件被重复包含。
汇编语言中的#define #include #ifdef 等问题
文章寫得很好,我給貼過來了 引用: On Wed, Sep 10, 2003 at 01:07:25PM -0700, garret.spears wrote: > Refernce: > gcc-2.95.3 -m5200 -x assembler led.S Before you compile an assembly source file, you should
c语言基础面试题
原文: c语言基础面试题 链接:http://bbs.51cto.com/thread-811556-1.html 1. 写一个函数判断当前系统的字节序。 2. 如何用c语言执行shell命令,如何实现管道和重定向功能?要求不能使用system()函数。 3. 函数的自动变量保存在哪里?如果一个int型自动变量未初始化,它的值会是0吗?
深入理解C/C++混合编程(关于#ifdef __cplusplus extern "C" {...}的用法)
本篇文章是对C/C++混合编程进行了详细的分析介绍,需要的朋友参考下。         在工作中,C、C++密不可分,做我们嵌入式方面的,当然更多的是C,但,有时候却少不了C++,而且是C、C++混搭(混合编程)在一起的,比如,RTP视频传输,live555多媒体播放等都是C++下的,他需要调用JRTPLIB库,再比如,我那邮件发送,我也用C++写的,定义了一个Email对象,包含了成员:收发邮
#ifndef 与 #program once 的区别 和注意点
来自:http://blog.csdn.net/jfkidear/article/details/7868662 为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。     方式一:     #ifndef __SOMEFIL
FreeRTOS的源代码个人分析(基于KEIL下STM32F103的Demo) 五
list.c与list.h的源代码分析 这一篇之所以讲list的内容,是为了后面分析其他代码用的,list是FreeRTOS的一种数据结构
#ifndef #define #endif的用法
#ifndef #define #endif的用法
C++中避免头文件冲突之#ifndef
头文件中使用#ifdef和#ifndef是非常重要的,可以防止双重定义的错误。 如你在头文件aaa.h中定义了一个类aaa如下:    class   aaa    {    };    如果两次#include   "aaa.h"(不见得是直接,也有可能两个不同的头文件中都包含了这个头文件)就会出错,因为相同的类不能定义两次。把aaa.h稍做修改:    #ifndef   _aa
招聘 笔试题 笔试题 面试题
1、 你认为作为一个软件工程师应该具备哪些基本素质与品质? 2、 简要说明程序代码中写注释的目的 3、 程序头文件中的 # ifndef/# define/# endif作用是什么? 4、 C程序#include 和 #include”xxx.h”有什么区别? 5、 C++中拷贝构造函数(Copy Contructor)有什么作用?什么情况下必须定义拷贝构造函数?试写程序说明。
#if #ifdef和#ifndef的综合应用
#include #define MAX #define MAXIMUM(x,y) (x>y)?x:y #define MINIMUM(x,y) (x>y)?y:x int main() { int a=10; int b=20; #ifdef MAX printf("更大的数字是%d\n",MAXIMUM(a,b)); #else printf("更小的数字是%d\n",MINIMUM
头文件中的 #ifndef/#define/#endif什么用?
头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用”。我不理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件吗?如果头文件被重复引用了,会产生什么后果?是不是所有的头文件中都要加入#ifndef/#define/#endif 这些代码?rn谢谢帮助!!!
netcon.h头文件
#ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 440 #endif #include "rpc.h" #include "rpcndr.h" #ifndef __RPCNDR_H_VERSION__ #error this stub requires an updated version of #endif // __RPCNDR_H_VERSION__ #ifndef COM_NO_WINDOWS_H #include "windows.h" #include "ole2.h" #endif /*COM_NO_WINDOWS_H*/ #ifndef __netcon_h__ #define __netcon_h__ /* Forward Declarations */ #ifndef __IEnumNetConnection_FWD_DEFINED__ #define __IEnumNetConnection_FWD_DEFINED__ typedef interface IEnumNetConnection IEnumNetConnection; #endif /* __IEnumNetConnection_FWD_DEFINED__ */ #ifndef __INetConnection_FWD_DEFINED__ #define __INetConnection_FWD_DEFINED__ typedef interface INetConnection INetConnection; #endif /* __INetConnection_FWD_DEFINED__ */ #ifndef __INetConnectionManager_FWD_DEFINED__ #define __INetConnectionManager_FWD_DEFINED__ typedef interface INetConnectionManager INetConnectionManager; #endif /* __INetConnectionManager_FWD_DEFINED__ */ #ifndef __INetConnectionConnectUi_FWD_DEFINED__ #define __INetConnectionConnectUi_FWD_DEFINED__ typedef interface INetConnectionConnectUi INetConnectionConnectUi; #endif /* __INetConnectionConnectUi_FWD_DEFINED__ */ #ifndef __INetConnectionPropertyUi_FWD_DEFINED__ #define __INetConnectionPropertyUi_FWD_DEFINED__ typedef interface INetConnectionPropertyUi INetConnectionPropertyUi; #endif /* __INetConnectionPropertyUi_FWD_DEFINED__ */ #ifndef __INetConnectionCommonUi_FWD_DEFINED__ #define __INetConnectionCommonUi_FWD_DEFINED__ typedef interface INetConnectionCommonUi INetConnectionCommonUi;
简单理解一道关于#ifndef 和extern "C"的题
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。 加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。 由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。     #ifnde
头文件中的ifndef/define/endif的作用
防止该头文件被重复引用 标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h #define   _STDIO_H_    例子: /* Define _CRTIMP */ #ifndef _CRTIMP#ifdef  _DLL#define _CRTIMP __declspec(dllimport)#else  
头文件ifndef/define/endif的作…
例如:要编写头文件test.h          在头文件开头写上两行:           #ifndef _TEST_H           #define _TEST_H//一般是文件名的大写          ············          ············          头文件结尾写上一行:           #endif     大概是以前没有学好吧,
头文件中的ifndef/define/endif 的作用
ifndef/define/endif”主要目的是防止头文件的重复包含和编译
.h头文件中的ifndef/define/endif 的作用?
防止该头文件被重复引用!
头文件中的#ifndef #define #endif 的使用
头文件中的#ifndef #define #endif 的使用 头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。  还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:  #
头文件中的 ifndef/define/endif什么用?
答:防止该头文件被重复引用。
Python编程(第四版)
当掌握Python的基础知识后,你要如何使用Python?本书为这门语言的主要应用领域提供了深度教程,譬如系统管理、GUI和Web,并探索了其在数据库、网络、前端脚本、文本处理等方面的应用。通过关注常用工具和库,你将深入理解Python在现实世界编程中所扮演的角色。你将学到清晰和简洁明了的语法和编程技巧,并伴随大量的示例来展示正确的用法和惯例。本书已完全更新到Python 3.x,也深入探讨了作为一种软件开发工具的语言,并有许多代码示例。
头文件中的ifndef/define/endif的作用
标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h #define   _STDIO_H_    例子: /* Define _CRTIMP */ #ifndef _CRTIMP#ifdef  _DLL#define _CRTIMP __declspec(dllimport)#else   /* ndef _DLL */#
头文件中#ifndef/define/endif的作用
防止头文件被重复引用,是格式如下:#ifndef _GAMEDATA_H_ #define _GAMEDATA_H_ class GameData { public: protected: private: }; #endif// 如果使用以上格式,在别的头文件或实现文件中重复包含是不会报错的,如下所示: #include "GameData.h" #include "GameData.h" #in
#pragma与#ifndef #endif相同点、区别、缺陷
相同点:都是防止头文件重复包含 区别: 1、#pragma once是微软编译器独有的,不支持跨平台,而后者不存在该问题; 2、原理不一样,#pragma once如果发现头文件被包含就不会打开头文件,而后者每次都要打开头文件去判断头文件宏,所以前者更快; 缺陷: #pragma once用在两个内容相同,文件名不同的头文件中时,这2个头文件都会包含进来,编译时就会出现重定义的错
iOS:#ifdef的使用
此方法能用好,可以在demo中起到至关重要的作用,此处有三种情况 一、 #ifdef XXXX   //...demo块1... #else   //...demo块2... #endif 此处实现机制是:如果xxxx编译过,即实现demo块1,否则为demo块2,#endif为结束。 #ifndef _XXXX   //...程序段1... #else   //...程序段2...
什么会有#ifdef ...#else...#endif等条件编译语句
1. 在C语言中会大量的看到这些条件编译的命令
#ifndef #define #endif防止的是“重复编译”,而不是“重复定义
#ifndef #define #endif防止的是“重复编译”,而不是“重复定义” 重复编译可能造成重复定义,但重复定义的来源不只有重复编译 从代码变成可执行的程序,需要两个步骤 编译和链接 编译开始时,将所有#include头文件的地方替换成该头文件的代码 在编译阶段,编译所有源文件成为模块,各模块中的每个变量与函数都得到了属于自己的空间 在链接阶段,各个模块被组合到一起
FPGA基础知识23(Verilog中条件编译命令_`ifdef、`else、`endif_用法)
来自:https://wenku.baidu.com/view/084ce39427d3240c8547ef2f.html   Verilog 中条件编译命令 `ifdef 、 `else 、 `endif 用法 一般情况下, Verilog HDL源程序中所有的行都参加编译。但是有时候希望 对其中的一部份内容只有在条件满足的时候才进行编译, 也就是对一部分内容指 定编译的条件, 这就是“条件...
Objective--C语言预处理命令之条件编译(#ifdef,#else,#endif,#if等)
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。 在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句
reg51.h是什么意思?
是c51(用于单片机开发的一种c语言)的头文件。类似于头文件AT89X52.h。这两个头文件基本是一样的,只是在使用时对位的定义不一样,at89x52.h文件中对P1.1的操作是写成P1_1;reg52.h文件中的操作则写成P1^1。表示方法不一样而已。另外前者是特指ATMEL公司的52系列单片机,后者指所有52系列的单片机。 (转)单片机中用c编程时头文件reg51.h及reg52.h解析
教你看懂C++类库函数定义之三---_stdcall
上篇文章我们知道#define STDMETHODCALLTYPE __stdcall ,那__stdcall又是个什么东东呢,有什么作用呢?下面来完全的了解一下. 1. _cdecl   (1). 是C Declaration的缩写,表示C语言默认的函数调用方法,实际上也是C++的默认的函 数调用方法。  (2). 所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。具体所示:
CC++常见标准头文件前的一般格式解析2
显然,头文件中的编译宏“#ifndef __INCvxWorksh、#define __INCvxWorksh、#endif” 的作用是防止该头文件被重复引用。 深层揭密extern "C"   extern "C" 包含双重含义
C++学习笔记(六):关于ifdef 和ifndef的使用
在写程序的时候经常看到这么几句话:        #ifndef  xxx_xxx_x        #define  xxx_xxx_x        ....        #endif       自己也一直知道这个是防止头文件重复编译的保护语句,因此自己写程序的时候只要自己写头文件,那不管三七二十一通通把这几句加上,但是其实自己一直不知道为什么加这几句可以达到防止头文件重复编译的
单片机\红外遥控 可以直接就用的
单片机\红外遥控 可以直接就用的 //厂商定义列表 #define SHENSHIYIN #undef SHENSHIYIN #ifndef SHENSHIYIN #define DAVINCI6441 //#undef DAVINCI6441 #endif
EOF是什么
今天面试遇到一个问题,文件中的EOF到底是个什么东西,我回答说是-1,然后被面试官鄙视了,纠结了很久,没有回答出来,今天的面试算是挂了吧,不过得把这个知识的空缺补上,特意回来查了下,将别人的博客转载过来,觉得这个还是比较通俗的解释的。原文点这里:EOF是什么? 作者: 阮一峰 日期: 2011年11月12日 我学习C语言的时候,遇到的一个问题就是EOF。 它是end of file的缩写,
IOS #ifdef 的那些事儿
这篇文章是本人(本人是菜鸟)在第一次接触上线项目时遇到的一个让我记忆深刻的问题。 如果你是大神,那么请绕过,这只是很肤浅的知识点,写给自己也分享给大家。 相信大家对于下面的语句一定不陌生。 #ifdef (1) (2) #else (3) #endif 但是我在这里还是稍微解释一下吧(显得专业),如果在这个式子之前有 #define (1) 的话 执行
STM32中防止头文件重复包含
在 STM32 标准库的所有头文件以及我们自己编写的“bsp_led.h”头文件中,可看到类 似代码清单 12-9 的宏定义。它的功能是防止头文件被重复包含,避免引起编译错误。 代码清单 12-9 防止头文件重复包含的宏 1 #ifndef __LED_H 2 #define __LED_H 3  4 /*此处省略头文件的具体内容*/ 5  6 #endif /* end of __LED_H...
__KERNEL__ 宏作用是什么
 这个宏在内核及应用程序代码中均能看到。它仅起到判断作用,而不是在实际的代码逻辑中被替换,就如之前讲的避免define重复定义的用法一样。但不同的是这个宏的目的并不是避免重复定义,那么这个宏到底是什么意思? 通过相应的代码可以看到如果定义了 __KERNEL__ 则会多编译一段。而多编译的这一段是只有像内核这样的代码会用到的。 这样考虑一下:我为某个设备写了一个设备驱动,毫无疑问
ifndef,#define,#endif的使用方法
这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次   #pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义。   #pragma once是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上已经是每个编译器都有这个定义
链式存储的LinkList.h代码
1. LinkList.h#ifndef _LINKLIST_H#define _LINKLIST_Htypedef void LinkList;typedef struct _tag_LinkListNode LinkListNode;struct _tag_LinkListNode { LinkListNode* next;};LinkList* LinkList_Creat();void L
#ifndef #define #endif能避免头文件的重定义
      在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量“重定义”的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。  方法:例如要编写头文件test.h  在头文件开头写上两行:  #ifndef _TEST_H  #define _TEST_H//一般是文件名
条件编译 (ifdef 与 ifndef
#ifndef x   #define x   ...   #endif   这是宏定义的一种,它可以根据是否已经定义了一个变量来进行分支选择,一般用于调试等等.实际上确切的说这应该是预处理功能中三种(宏定义,文件包含和条件编译)中的一种-
PLC PPI 源程序
西门子 PPI PLC MODBUS 驱动开发 摘录一下: //*********************下面是和变量的存储类型相关的宏定义。51和avr不同。 #ifdef MCU_TYPE_ICC_AVR //**如果是avr系列单片机 #ifndef UCHAR_CODE //**表示数据保存在程序存储器中 #define UCHAR_CODE const unsigned char #endif #ifndef uchar_code //**表示数据保存在程序存储器中 #define uchar_code const unsigned char #endif #ifndef UINT_CODE //**表示数据保存在程序存储器中 #define UINT_CODE const unsigned int #endif #ifndef uint_code //**表示数据保存在程序存储器中 #define uint_code const unsigned int #endif
在Java中实现类似C/C++中#ifdef...#endif预编译宏的效果
Java中虽然没有宏定义,但是Java编译器优化机制中有这么一条: 对于条件表达式中永远为false的语句,编译器将不对条件覆盖的代码段生成字节码。 所以可以通过如下代码实现类似效果: final boolean build= false;//注意此变量必须是final类型的,这样条件中的代码就不会编译成字节码了。 if(build){ .... } else{ .... }
头文件中应该放些什么
头文件中应该放入:#1 函数原型声明#2全局变量声明这里说的是声明,不是定义。即:extern int global;#3自己定义的宏和类型而下列是不该放入的:#1 全局变量和函数的定义全局变量只能定义一次,如果把int global;这样的语句放在头文件中,那么所有包含这个头文件的地方都定义一次全局变量global,到了链接的时候链接程序就会报告找到多个global。函数的情
C 宏定义的使用
#ifndef BV #define BV(n)      (1 #endif #ifndef BF #define BF(x,b,s)  (((x) & (b)) >> (s)) #endif #ifndef MIN #define MIN(n,m)   (((n) #endif #ifndef MAX #define MAX(n,m)   (((n) #endif
头文件中无法进行#define定义常量
在用MDK5编程时,发现当在头文件中用#define定义某常量,然而在源文件中无法引用该头文件的宏定义常量,但是在VS2013中却可以。 同时在网上查找诸多资料后发现是因为编译器的问题,不同的编译器对此规定不同,有的允许在头文件中进行宏定义常量,有的不行(定义后无法使用,编译不报错)。...
#if、#ifdef、#ifndef的用法和区别
#if、#ifdef、#ifndef的用法和区别
Eclipse中设置#ifdef中的颜色
可以完全禁用#ifdef高亮显示,方法是: Window->Preferences->C/C++->Editor并取消选中“突出显示非活动代码”框。 此外,您还可以更改#ifdef高亮颜色,方法是转到同一屏幕,并将“非活动代码高亮”颜色(在“外观颜色选项”标题下)更改为更适合您的颜色。...
dx8sdk+lib+include
dx8sdk.cab #ifndef __D3DX8_H__ #define __D3DX8_H__ #include #include #ifndef D3DXINLINE #ifdef __cplusplus #define D3DXINLINE inline #else #define D3DXINLINE _inline #endif #endif #define D3DX_DEFAULT ULONG_MAX #define D3DX_DEFAULT_FLOAT FLT_MAX #include "d3dx8math.h" #include "d3dx8core.h" #include "d3dx8tex.h" #include "d3dx8mesh.h" #include "d3dx8shape.h" #include "d3dx8effect.h"
我们是很有底线的