这里#ifndef 和 #define 后面的字符串指宏定义,一般使用大写字母表示,可以是任意的字符串,一般为了方便理解尽量和头文件的名字保持一致,在头文件第一次被包含的时候该宏即被定义,编译器会给该字符串赋一个值,在下次引入头文件时就会发现该宏已经被定义,从而避免重复包含头文件。 ...
分类:
其他好文 时间:
2017-09-20 23:12:13
阅读次数:
129
原文:#ifndef HeaderName_h #define HeaderName_h #endif 使用详解 想必很多人都看到过头文件中写有:#ifndef HeaderName_h #define HeaderName_h // 这里面通常写各种宏定义、其他头文件的包含 #endif 这样做的 ...
分类:
其他好文 时间:
2017-09-15 12:12:03
阅读次数:
109
头文件和源文件 由于头文件是为了重用,所以在一个复杂的程序中,头文件可能会被间接地重复包含。如果头文件里面都是函数声明,那问题还不大。如果头文件里面有函数定义(如程序11.2),那么就会出现函数被重复定义的错误,程序将无法运行。我们可以采用函数声明和定义分离的方式:把所有的声明都放在shape.h中 ...
分类:
编程语言 时间:
2017-08-08 12:44:36
阅读次数:
246
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用得宏定义。。。。。。 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种 ...
分类:
系统相关 时间:
2017-08-07 22:11:55
阅读次数:
207
关于避免头文件的重复引用 #ifdef 、和 #ifndef 测试某个宏是否被定义,经常用于避免头文件的重复引用。 头文件的重复引用往往是由于包含嵌套造成的,比如 func.cpp文件包含如下头文件: //func.cpp文件中 #include "A.h" #include "B.h" 而 A.h ...
分类:
编程语言 时间:
2017-07-01 21:46:17
阅读次数:
152
1,防止一个头文件被重复包含 #ifndef BODYDEF_H #define BODYDEF_H //头文件内容 #endif 2,得到指定地址上的一个字节或字 #define MEM_B( x ) ( *( (byte *) (x) ) ) #define MEM_W( x ) ( *( (w ...
分类:
其他好文 时间:
2017-05-17 19:19:41
阅读次数:
215
一:解决块注释/**/不能嵌套的问题: 我们知道行注释//可以多层嵌套和逐层取消,而块注释/**/不能嵌套或不能与//混用,否则有可能出现编译错误。通常我们在程序调试时如果要取消一大段代码,可以用条件编译#if 0 #endif实现 二:避免头文件的重复包含: 假如a.h中自定义了一个结构体,在b. ...
分类:
其他好文 时间:
2017-05-12 20:12:40
阅读次数:
114
-------------------siwuxie095 纯虚函数 在 C++ 中,用 纯 字来修饰虚函数,即 纯虚函数 纯虚函数没有函数体,同时在定义时,函数名的后边要加 =0 看如下实例: 纯虚函数在虚函数表中的实现: 如果定义了一个 Shape 类... ...
分类:
其他好文 时间:
2017-05-04 21:55:17
阅读次数:
215
siwuxie095 看如下实例: 有 4 个类,其中:类 A 是父类,类 B 和 类 C 都继承 类 A, 而 类 D 继承了 类 B 和 类 C,称这种继承关系为 菱形继承 在菱形继承中,既有多继承,又有多重继承: 那么问题来了: 当实例化 D 的对象时,发现:D 是从 B 继承来的,B 是从 ...
分类:
其他好文 时间:
2017-05-03 22:49:29
阅读次数:
282
1.在使用命令行进行编译链接文件的时候,通常是把.m文件单文件编译,然后再把所有的目标文件链接,但是在Xcode中,是把所有的.m文件都进行编译链接的,如果出现重复定义的错误,那大部分问题根源应该就是文件内容被重复包含或者是包含.m文件所引起的。 2.可以说.h和.m文件时完全独立的,只是为了要求有 ...
分类:
移动开发 时间:
2017-04-26 21:28:41
阅读次数:
215