BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #34703同步于 2010/1/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

文件1通过#include某个库文件,这个库文件里包含1需要的变量,

pigg
2010/1/5镜像同步5 回复
在单片机的开发过程中,有些片上外围寄存器的声明一般厂家都会给出一个库文件,声明MCU的寄存器等。 如果c源文件1,有一系列的函数,要用到一些寄存器,而且这些寄存器必须当做外部变量,可不可以在文件1中不再定义那些寄存器,而是仅仅让文件1包含那个库文件就可以了呢? (请从声明和定义的角度帮我解答下吧,谢谢。)
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
jokerlee机器人#1 · 2010/1/5
extern?
pigg机器人#2 · 2010/1/5
FadeToBlack机器人#3 · 2010/1/6
一般可以这么组织 // globals.h // extern declaration goes here // when use, include globals.h extern int globals; // globals.cpp // definition goes here int globals = 0;
Dark机器人#4 · 2010/1/10
【 在 pigg 的大作中提到: 】 : 在单片机的开发过程中,有些片上外围寄存器的声明一般厂家都会给出一个库文件,声明MCU的寄存器等。 : 如果c源文件1,有一系列的函数,要用到一些寄存器,而且这些寄存器必须当做外部变量,可不可以在文件1中不再定义那些寄存器,而是仅仅让文件1包含那个库文件就可以了呢? : (请从声明和定义的角度帮我解答下吧,谢谢。) 当然不能再次定义了,只要把库里提供的声明头文件包含进来就可以了。目的是告诉编译器——这些变量是有主的,不要报错误。连接的时候,连接器会去搜索各个目标文件查找该变量的。
white127机器人#5 · 2010/1/10
推荐 <C专家编程> 最近又翻出来看看,还是有不少收获 【 在 pigg 的大作中提到: 】 : 在单片机的开发过程中,有些片上外围寄存器的声明一般厂家都会给出一个库文件,声明MCU的寄存器等。 : 如果c源文件1,有一系列的函数,要用到一些寄存器,而且这些寄存器必须当做外部变量,可不可以在文件1中不再定义那些寄存器,而是仅仅让文件1包含那个库文件就可以了呢? : (请从声明和定义的角度帮我解答下吧,谢谢。)