lz,请自己去白度搜索这个**,AVR c语言优秀编程风格

[复制链接]
 楼主| 已注册 发表于 2007-9-24 12:50 | 显示全部楼层 |阅读模式
在一个项目文件中定义了若干*.h 和 *.c文件,假设在A.C文件中定义了两个函数分别为void  x1(void){}和void  x2(void){}

B.C文件定义两个函数void  x3(void){}和void  x4(void){}

在main.c文件中分别调用了x1(),x2(),x3(),x4(),现在如果我想在x1()中调用x3()的话,应该怎么写?
 楼主| 已注册 发表于 2007-9-24 12:50 | 显示全部楼层

在这4个函数中都用到了全局变量

computer00 发表于 2007-9-24 13:09 | 显示全部楼层

一样啊.只要声明一下就行了。

ayb_ice 发表于 2007-9-24 13:16 | 显示全部楼层

这都不会吗?

 楼主| 已注册 发表于 2007-9-24 13:23 | 显示全部楼层

我在main.c中

#include  "A.C"
#include  "B.C"


然后在A.C中这样写:extren  void x1(void)();


但不能编译.
 楼主| 已注册 发表于 2007-9-24 13:24 | 显示全部楼层

TO ayb_ice

惭愧,确实不会,请教.
computer00 发表于 2007-9-24 13:28 | 显示全部楼层

不要include C文件,规范的使用H文件

将C文件添加到工程,然后写对应的H文件,在H文件中声明. 哪里需要调用,哪里就引用这个头文件。你可以随便在我的BLOG中找个有源代码的例子下载来看看。
 楼主| 已注册 发表于 2007-9-24 13:36 | 显示全部楼层

computer00的意思是:

将A.C和B.C定义为A.H和B.H文件?



能不能写一个示范?
ayb_ice 发表于 2007-9-24 13:38 | 显示全部楼层

声明有错"extren void x1(void)();"

应该是extren void x1(void);...
 楼主| 已注册 发表于 2007-9-24 13:45 | 显示全部楼层

谢谢ayb_ice,根据你的提示已经正确

但computer00说的用*.H文件怎么管理?


问这个的原因主要是正好遇到全局变量在各个*.C文件中调用时遇到了一些问题,记得以前听别人说,是用*.H文件处理解决的.


只会把所有的函数写在一个main.c文件中,因为代码大了,滚动比较麻烦,所以想按照实现的功能分函数写,但不会写.


请教各位.
 楼主| 已注册 发表于 2007-9-24 13:47 | 显示全部楼层

请问computer00

现在各个功能函数是写成了*.C文件,然后在MAIN.C中包含进去的,请问:难道需要把这些功能函数写成*.H文件吗?

一直都以为*.H,*.C文件其实差不多的.
ayb_ice 发表于 2007-9-24 14:06 | 显示全部楼层

不推荐使用include "xxx.c"文件的方法...

IDE都有例程的,找个例子看看...
 楼主| 已注册 发表于 2007-9-24 14:08 | 显示全部楼层

请问对于下面的函数怎么写?


void        x3(adr,val)
uint        adr;
uchar       val;
{
adr=val*10;
}

此时我按照下面的写法,编译时也报错.
extern   void x3(uint adr,uchar val);



但如果把函数定义成:
void        x3(uint adr,uchar val)
{
adr=val*10;
}
则写成extern  void x3(uint adr,uchar val);就可以编译通过.
 楼主| 已注册 发表于 2007-9-24 14:15 | 显示全部楼层

找了一下我的IDE的例子

没见到有类似的写法,基本都是写在一个main.c里面的
 楼主| 已注册 发表于 2007-9-24 14:17 | 显示全部楼层

我手上有一本马忠梅的<单片机C语言应用程序设计>

好象中间对这个讲得也很少,哪位见过哪本书对结构化编程写的比较好的书的?

推荐一本俺学习.
 楼主| 已注册 发表于 2007-9-24 14:30 | 显示全部楼层

哎,三大斑竹都在,竟然没一个看俺的帖子的!

难道都在想着那IBM去了?!




郁闷……
huangqi412 发表于 2007-9-24 15:15 | 显示全部楼层

lz,请自己去白度搜索这个**,AVR c语言优秀编程风格

带有一个项目例子的
computer00 发表于 2007-9-24 15:18 | 显示全部楼层

晕,叫你随便去我的BLOG下个工程来看看呀

xc_cz 发表于 2007-9-24 15:28 | 显示全部楼层

你用的什么平台?

KEIL C的话只要把各个文件加到工程里面就可以了,不同文件中的函数函数调用也很简单,只要在调用之前引用一下就可以。。
 楼主| 已注册 发表于 2007-9-24 17:31 | 显示全部楼层

IAR AVR

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

本版积分规则

3

主题

61

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部