4815|4

66

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

c文件包含中<>和 ""的区别问题 [复制链接]

大家好,最近开始看的这本书中有个问题不是很清楚,所以想问一下,谢谢!

文中讲到#include和#include"filename.h"的区别:
对于#include,编译器从标准库路径开始搜索filename.h
对于#include"filename.h",编译器从用户的工作路径开始搜索filename.h

我google了一下,没有找到满意的答案
请问,什么是标准库路径,什么是用户工作路径?
对以上这两句话的编译究竟有什么不同呢?
谢谢大家!

我的大学十年.rar

33.61 KB, 下载次数: 7

高质量C++_C编程指南.pdf

513.12 KB, 下载次数: 5

此帖出自单片机论坛

最新回复

各家公司的编译器会有不同的做法。你用的Silicon Laboratories是咋个玩法不太清楚,比如Renesas公司,他们把H文件放在网页上,用户根据自己用的CPU选择下载后,就存放在自己的源程序目录下,这时用 #include "xxxx.h" 语句定义;Atmel公司的 AVR Studio 则是把所有型号的“特殊寄存器头文件”集中放在系统的安装目录下,用户做新项目时利用系统提供的导向,自动选好要用的头文件。 你用的系统是怎样的,找个例子看看或许就能知道了。  详情 回复 发表于 2008-7-14 17:43
点赞 关注
 

回复
举报

228

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

大概是这么回事吧:

#include指的是编译系统默认的库文件,这个路径在安装好编译器时已经设置好了,用户不必关心它实际存在于什么地方;
#include"filename.h"指向用户自己编写的头文件,通常和源程序放在一起,要不编译器不知去哪儿找到它们。
此帖出自单片机论坛
 
 

回复

66

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 沙发 仙猫 的帖子

恩,我好像明白了,谢谢你啊!

就比如我用的c8051f410的单片机,我就要在源程序开头写上:
#include    //特殊寄存器地址表声明文件
这个就是编译系统默认的库文件吧

如果我自己编写了一个.h文件,就应该和源程序放在一起,并且用#include"filename.h"格式

但是我想问一下,在应用每一种类型的单片机的时候,是不是都会有这样一个“特殊寄存器地址表声明文件”呢?我怎么知道它的名字呢?
此帖出自单片机论坛
 
 
 

回复

228

帖子

0

TA的资源

一粒金砂(中级)

4
 

做嵌入式,特殊寄存器是跑不了的

各家公司的编译器会有不同的做法。你用的Silicon Laboratories是咋个玩法不太清楚,比如Renesas公司,他们把H文件放在网页上,用户根据自己用的CPU选择下载后,就存放在自己的源程序目录下,这时用 #include "xxxx.h" 语句定义;Atmel公司的 AVR Studio 则是把所有型号的“特殊寄存器头文件”集中放在系统的安装目录下,用户做新项目时利用系统提供的导向,自动选好要用的头文件。
你用的系统是怎样的,找个例子看看或许就能知道了。
此帖出自单片机论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 4楼 仙猫 的帖子

恩,明白啦,谢谢你!
此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表