搜索
bottom↓
回复: 2

iccavr 怎么做一个头文件带全局变量

[复制链接]

出0入0汤圆

发表于 2011-1-7 11:51:26 | 显示全部楼层 |阅读模式
1.c
#include "config.h"
void main(void)
{
   DDRD|=(1<<1);
   b=a+b;
   test();
}

2.c
#include "config.h"
void test(void)
{
   DDRD|=(1<<1);
   a=5;
   test();
}

config.h
#ifndef __config_h__
#define __config_h__
#include <iom48v.h>
#include <macros.h>
typedef unsigned  char  unchar;       
extern void test(void);
extern unchar a=0;
extern unchar b=0;
#endif

编译 会出问题
F:\icc\bin\imakew -f 123.mak
    iccavr -c -IF:\icc\include\ -e -DATMega48  -l -g -Mavr_enhanced_small  F:\C\c\wuxian\1.c
    iccavr -o 123 -LF:\icc\lib\ -g -bfunc_lit:0x34.0x1000 -dram_end:0x2ff -bdata:0x100.0x2ff -dhwstk_size:16 -beeprom:1.256 -fihx_coff -S2 @123.lk  
!E 2.o(19): multiple define: '_a'
!E 2.o(20): multiple define: '_b'
F:\icc\bin\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1

请教各位高人,上面是我试试怎么用头文件和全局变量,不知道怎么回事,请帮忙解答,谢谢大家了

出0入0汤圆

发表于 2011-1-7 11:54:45 | 显示全部楼层
extern unchar a=0;
extern unchar b=0;
这是申明不是定义。把前面的extern去掉。
或者把后面的赋值去掉,在其他文件定义。

出0入0汤圆

 楼主| 发表于 2011-1-7 12:03:03 | 显示全部楼层
回复【1楼】lalapunk1983
-----------------------------------------------------------------------

是的,可以了,谢谢啊
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 09:55

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

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