码迷,mamicode.com
首页 > 其他好文 > 详细

#define #include

时间:2014-06-26 15:57:17      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:class   使用   文件   string      代码   

c语言中include“”的区别 
< >引用的是编译器的类库路径里面的头文件 " "引用的是你程序目录的相对路径中的头文件 假如你编译器定义的自带头文件引用在C:\Keil\c51\INC\下面 则#include<stdio.h>引用的就是C:\Keil\c51\INC\stdio.h这个头文件 不管你的项目在什么目录里,C:\Keil\c51\INC\stdio.h这个路径就定下来了 一般是引用自带的一些头文件:stdio.h、conio.h、string.h、stdlib.h等等之类的。。 假如你的项目目录是在D:\Projects\tmp\ 则#include "my.h" 引用的就是D:\Projects\tmp\my.h这个头文件 一般是用来引用自己写的一些头文件 如果使用" ",它是会先在你项目的当前目录查找是否有对应头文件 如果没有,它还是会在对应的引用目录里面查找对应的头文件 意思就是,使用#include "stdio.h"如果你项目目录里面,没有stdio.h这个头文件,它还是会定位到C:\Keil\c51\INC\stdio.h这个头文件的 

 

在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接

成一个可执行文件时,就会出现大量“重定义”的错误。在头文件中实用

#ifndef #define 

#endif

能避免头文件的重定义。

在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接

成一个可执行文件时,就会出现大量“重定义”的错误。在头文件中实用

#ifndef #define 

#endif

能避免头文件的重定义。  这样一个工程文件里同时包含两个test.h时,就不会出现重定义的错误了。

 分析:当第一次包含

test.h

时,由于没有定义

_TEST_H

,条件为真,这样就会包含(执行)

#ifndef _TEST_H

#endif

之间的代码,当第二次包含

test.h

时前面一次已经定义了

_TEST_H

,条件为假,

#ifndef _TEST_H

#endif

之间的代码也就不会再次被包含,这样

就避免了重定义了。

#define #include,布布扣,bubuko.com

#define #include

标签:class   使用   文件   string      代码   

原文地址:http://www.cnblogs.com/fear-love/p/3808951.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!