发新帖我要提问
12
返回列表
打印
[STM32F1]

STM32 子程序内存分配问题

[复制链接]
楼主: magic_yuan
手机看帖
扫描二维码
随时随地手机跟帖
21
magic_yuan|  楼主 | 2014-4-23 23:23 | 只看该作者 回帖奖励 |倒序浏览
guet_new_man 发表于 2014-4-23 20:50
仔细想了一下这个问题,总结如下,你想表达的想必也是这关观点吧 :
C编译器识别的目标文件是.c文件,而. ...

看了大侠的这段话对.H和.C区别明白了更多。
有一点疑惑,如果在.H中定义一个变量,而在两个.C文件中引用。但由于这个变量的作用域分别在这两个.C文件内部,这样应该不会有冲突吧?
多谢啊!

使用特权

评论回复
22
diweo| | 2014-4-24 08:12 | 只看该作者
本帖最后由 diweo 于 2014-4-24 08:26 编辑
magic_yuan 发表于 2014-4-23 23:23
看了大侠的这段话对.H和.C区别明白了更多。
有一点疑惑,如果在.H中定义一个变量,而在两个.C文件中引用 ...

看来你还是没明白。
你这么做就是重复定义,就要报错了!!
C语言允许一个全局变量跨越多个作用域(用extern),而不允许不同作用域内用相同名字的全局变量。
那么在.h文件的函数内部定义局部变量行不行呢?
也不行,因为函数声明可以重复,但是定义只能有一次。既然要定义局部变量,肯定首先要有函数定义,就不能被重复include了。

(有点罗嗦了,可是不罗嗦点又说不清:))

使用特权

评论回复
23
magic_yuan|  楼主 | 2014-4-24 09:28 | 只看该作者
diweo 发表于 2014-4-24 08:12
看来你还是没明白。
你这么做就是重复定义,就要报错了!!
C语言允许一个全局变量跨越多个作用域(用exte ...

多谢啊,原来这样。不同文件内部不能采用相同名字的全局变量啊。我以为象定义函数内部的局部变量一样了,可以名字相同。

使用特权

评论回复
24
guet_new_man| | 2014-4-24 15:06 | 只看该作者
呵呵, diweo补充的很清晰,我就不多说了

使用特权

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

本版积分规则