3525|7

227

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

一个C文件的全局变量声明问题 [复制链接]

最近人前几天在头问件上折腾了好久,主要是头文件里面的 嵌套问题,  后来曲线救国了。





现在问题是:

一个key.c文件中有些函数,这些函数有一个在key.c中的全局变量i。但这些函数在key.h中声明,在main.c中被调用,但全局变量i定义在哪里呢?我定义在key.c和main.c中都有问题。

最新回复

外部文件想调用,要在变量前加extern的   详情 回复 发表于 2015-4-28 20:58
 
点赞 关注

回复
举报

1193

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
定义在key.c里,但是在key.h里用extern关键字声明
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

板凳
 
函数和全局变量都是一样的,只能在一个工程里面只能定义一次。在别的文件里面用的时候声明一下就可以了,也就是加一个extern;
比如你要定义i,在main文件里面定义 ucahr i;在key.c里面加一句 extern uchar i;就行了。
随着工程文件的增大,这样写会越来越乱,有一些技巧还是需要慢慢掌握的。
 
 
 

回复

227

帖子

2

TA的资源

一粒金砂(高级)

4
 
Error[e16]: Segment INTVEC (size: 0x60 align: 0x1) is too long for segment definition. At least 0x40 more bytes needed. The problem occurred while processing the segment  
placement command "-Z(CODE)INTVEC=FFE0-FFFF", where at the moment of placement the available memory ranges were "CODE:ffe0-ffff"
   Reserved ranges relevant to this placement:
   ffe0-ffff            INTVEC
Error while running Linker

点评

问题解决了,默认芯片是f149。我傻傻的没有更改芯片  详情 回复 发表于 2015-4-28 11:03
 
 
 

回复

227

帖子

2

TA的资源

一粒金砂(高级)

5
 


问题解决了,默认芯片是f149。我傻傻的没有更改芯片
 
 
 

回复

227

帖子

2

TA的资源

一粒金砂(高级)

6
 
中断函数必须写在main.c 中吗?我想写在其他.c文件中,不知运行会不会出错

点评

不会出错  详情 回复 发表于 2015-4-28 11:09
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

7
 
xy598646744 发表于 2015-4-28 11:07
中断函数必须写在main.c 中吗?我想写在其他.c文件中,不知运行会不会出错

不会出错
 
 
 

回复

1291

帖子

0

TA的资源

纯净的硅(中级)

8
 
外部文件想调用,要在变量前加extern的
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表