搜索
bottom↓
回复: 2

IAR中三星单片机头文件的定义,声明问题

[复制链接]

出0入0汤圆

发表于 2012-12-3 22:43:13 | 显示全部楼层 |阅读模式
最近刚接触IAR来开发三星单片机,有些不解,大家指点下,不甚感激,

1. IAR中是不是每一个.C文件都要单独的.H文件呢?

2.一个.H文件  所有的.C可以共同调用? 用PIC的单片机这么做的,但是IAR中编译出错,提示重复定义。(头文件已经用条件定义)

3.今天有尝试过给每一个.C配置独立的.H文件,对于那些需要多个C文件用的变量用extern声明。
这样char int 类型都可以 , 但是遇到struct union 这两种构造类型的  怎么声明都不行啊


大家建立IAR工程师怎么处理的呢,由于代码量大,1个H和1个C文件不太现实。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2012-12-6 21:50:43 | 显示全部楼层
已经解决了:下面是请教别人的聊天记录————
我定义char int的都是绝对定义的 制定在RAM中地址
吥噯,伱赱(175153322) 20:44:02
比如你在delay.h中定义的数组 在头文件开头先写上如此语句:
极地雪(273438763) 20:44:20
最后感觉由C语言退回汇编了 呵呵
极地雪(273438763) 20:44:52
#infndef  
  
极地雪(273438763) 20:45:07
#ifndef
极地雪(273438763) 20:45:17
条件定义 我已经用了呢
吥噯,伱赱(175153322) 20:45:23
#ifdef DELAY_GLOBALS
#define DELAY_EXT
#else
#define DELAY_EXT extern
#endif

然后在数组前面加DELAY_EXT 限制
吥噯,伱赱(175153322) 20:46:11
在delay.c最开头定义DELAY_GLOBALS
极地雪(273438763) 20:46:18
后来我我在主函数前定义了  DELAY_GLOBALS
极地雪(273438763) 20:46:34
然后在H文件中就是这么干的  哈哈
极地雪(273438763) 20:46:46
今天早上才成功
吥噯,伱赱(175153322) 20:46:46
不要在主函数定义 在delay.c定义
极地雪(273438763) 20:47:10
我在主函数所在的C文件
吥噯,伱赱(175153322) 20:47:17
因为delay.h你认为是配delay.c的 这样每个文件配套 不会乱套
吥噯,伱赱(175153322) 20:47:40
其他地方要用到delay.h里面定义的变量的直接包含这个头文件就可以了

我以为程序的入口在main  就在main.c的头部定义了这个全局横定义
吥噯,伱赱(175153322) 20:50:00
由于在其他包含delay.h的c文件中没有定义DELAY_GLOBALS 那么头文件中变量前面的DELAY_EXT就等于extern了 就相当于什么这个变量在其他文件定义了

一个头文件一个c文件 这样不乱套
极地雪(273438763) 20:50:53
但是main.c中会调用delay.c的啊
吥噯,伱赱(175153322) 20:51:08
不会啊
极地雪(273438763) 20:51:37
delay.c中没什么内容了?
吥噯,伱赱(175153322) 20:51:54
main。c中是调用delay.c中的函数 这样你包含delay.h不是包含delay.c啊
吥噯,伱赱(175153322) 20:52:34
delay.c中希望被外部调用的函数在delay.h中声明一下就可以了 比如void delay();
极地雪(273438763) 20:53:35
倘若还有一个delay1.c呢
极地雪(273438763) 20:54:41
delay1.c中还有几个函数  要在定义一个delay1.h?
吥噯,伱赱(175153322) 20:54:45
在配一个头文件嘛 不然共用一个delay.h 也行啊 只要把c文件中想要让外部调用的函数在头文件声明即可
极地雪(273438763) 20:55:11
恩 那要集中声明了

出0入0汤圆

 楼主| 发表于 2012-12-6 21:55:32 | 显示全部楼层
定义数组的方法---------------

const 修饰?
吥噯,伱赱(175153322) 20:41:53
数组定义没什么啊
吥噯,伱赱(175153322) 20:42:04
看你要定义什么数组了
极地雪(273438763) 20:42:12
我放在头文件里面就提示重复定义了
吥噯,伱赱(175153322) 20:42:33
加前缀限制
极地雪(273438763) 20:42:40
因为每个C文件都要调用头文件
张荣(642851794) 20:42:40
__code const volatile byte DspTab[16]
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-14 21:03

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表