打印

C语言问题请教高手

[复制链接]
1697|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
twenson|  楼主 | 2007-7-30 14:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lfk16888| | 2007-7-30 15:31 | 只看该作者

霍夫

试一下就知道了,程序编写有很多种的,不一样的程序,实现的功能都是一样的,你还能说哪个对那个错么?

使用特权

评论回复
板凳
路人sk| | 2007-7-30 16:12 | 只看该作者

都可以的

在一个文件里面定义,另一个文件里用extern申明一下就可以了

使用特权

评论回复
地板
wtfshxkj| | 2007-7-30 18:20 | 只看该作者

Lz

   建议Lz再回读以下C/C++教程吧。
当然,多看一下牛人写的代码也是一种不错的选择。

使用特权

评论回复
5
太阳之母| | 2007-7-30 20:28 | 只看该作者

嘿嘿

基本概念错误!
教你C的老师是谁?哪个学校的?敢不敢公布一下他的名字, 大家联合起来打他屁股, 打肿他屁股让他充胖子!

使用特权

评论回复
6
twenson|  楼主 | 2007-7-30 21:39 | 只看该作者

谢谢

如何错误请指教.谢谢.!该如何呢?给点参考和建议如何?

使用特权

评论回复
7
gjg191| | 2007-7-30 22:38 | 只看该作者

都不明白你的意思,.h文件怎么会是子程序了?

都不明白你的意思,.h文件怎么会是子程序了?在头文件里定义不行吗?

使用特权

评论回复
8
午夜屠猪男| | 2007-7-31 09:40 | 只看该作者

定义个全局变量

然后其他文件中用到时用entern声明一下

使用特权

评论回复
9
twenson|  楼主 | 2007-7-31 12:12 | 只看该作者

是否是这样?

那就是说在LCD.H中用uchar idata keybuf[16];定义,然后在QUX.C里面用extern uchar idata keybuf[16]就可以了是么?谢谢高手.

使用特权

评论回复
10
computer00| | 2007-7-31 13:12 | 只看该作者

不要这样

应该在某个.c文件中使用uchar idata keybuf[16],然后在对应的.h文件中使用extern uchar idata keybuf[16];

之后就可以使用include引用之。

使用特权

评论回复
11
suifeg| | 2007-7-31 13:42 | 只看该作者

同意10楼的说法

使用特权

评论回复
12
twenson|  楼主 | 2007-7-31 14:33 | 只看该作者

非常感谢

非常感谢computer00,

使用特权

评论回复
13
太阳之母| | 2007-8-1 09:20 | 只看该作者

嘿嘿

不可以在.h文件中"实现"变量;
但可以(而且一般需要)在.h文件中"声明"变量!

"实现"与"声明"的区别:
"实现一个变量"即"生成一个变量",就好比某人说:"我生孩子了",意味着这个人生出一个孩子了.生一个是一个.
"声明一个变量"即"描述一个变量",就好比某人说:"这孩子出生证号123456",意味着这个孩子已经存在,按出生证号就能找到这个孩子.

为什么
不可以在.h文件中"实现"变量;
但可以(而且一般需要)在.h文件中"声明"变量!
呢?

    .h文件一般是被某些.c文件包含的(#include),或者被别的.h文件包含(但最终依然还是被某些.c文件包含),注意这里用了"某些"这个词,意思是有几个.c文件要包(包含,不是包那什么,嘿嘿)同一个.h文件,  如果在这个.h文件中"实现"某个变量varA,那么包含这个.h文件的所有.c文件都会生成同一个变量varA,于是,就会出现变量重名的问题.
    需要被其他文件引用的变量一般需要在.h文件中用 extern 声明,就好比说:"这个变量已经存在,谁要用这个变量只需要包含本.h文件就可以了!",至于具体到哪儿去找到这个变量,编译系统有自己的办法,就不用操心了.



使用特权

评论回复
14
太阳之母| | 2007-8-1 09:33 | 只看该作者

嘿嘿

补充:
  需要被其他文件引用的变量一般需要在.h文件中用 extern 声明,就好比说:"这个变量已经存在,谁要用这个变量只需要包含本.h文件就可以了!",但注意:这个变量一定要在某个包含这个.h文件的.c文件中"",实现.至于具体怎么找到这个变量,编译系统有自己的办法,就不用操心了.

例如:
example.h文件如下:
... ...
extern unsigned char varA;   //两个意思  1."包含了本example.h的所有.c文件们请注意:谁实现了名字为varA的无符号字符型变量?请告诉编译系统." 2."包含了本example.h的所有.c文件中所有的函数们,名字为varA的无符号字符型变量已经实现了,谁要用这个变量,编译系统会告诉你们,varA在哪儿呆着."
... ...



使用特权

评论回复
15
hyh0lh| | 2007-8-1 10:31 | 只看该作者

楼上说的很清楚了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

8

帖子

0

粉丝