DSP .c 和.h文件架构

test.c文件构架

1、包含本文件对应头文件test.h

2、定义仅供本文件内部使用全局变量:用static修饰

3、定义可供外部文件使用的全局变量

4、引用外部文件定义的全局变量的申明:加extern

5、为本文件内定义的函数分配存储空间


test.h文件架构

1、条件编译,以防头文件被重复包含

#ifndef _TEST_H_ 

#define _TEST_H_

-----

#endif

2、包含test.c用到的头文件

3、test.c用到的enum和struct类型的typedef申明

4、test.c用到的外部文件定义的函数原型声明:用extern修饰



实例说明上述文件结构下各个.c文件直接怎么传递数据:

以main.c fun1.c fun2.c为例,fun2.c想获取fun1.c里面global_fun1本地变量的值,由于global_fun1为fun1.c的静态变量,fun2.c无法直接访问。要想获取fun1.c有两种方法:

方法1:在fun1.c中定义一个返回值为指针的函数。通过fun2.c调用fun1.c这个函数,得到global_fun1变量的地址,通过该地址访问。

方法2:在fun1.c中定义一个传入指针变量的函数。通过fun2.c调用fun1.c这个函数,将fun2.c的本地变量地址传递至fun1.c,在fun1.c里面将传过来的地址进行赋值。

两者main函数无改动,主要是fun1.c有改动。通过此例可以说明,在C语言中变量名有自己的作用域限制,但地址的作用域是全局的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值