求教一个c语言问题

lishi_1991 2013-01-23 11:21:06
一个大的工程项目包含三个小项目,每一个小项目都有很多.c文件,大项目除了包含这三个小项目外还有些.C文件实现整合和控制,现在我想在大项目的一个 ctrl.c 文件调用三个小项目中的一个capture.c文件中的变量“char *buf”,需要怎么做,除了外部ctrl.c文件包含 capture.h头文件 把这个buf变量设成全局变量还需要做什么呢?
(语言表达能力没做好 ,希望大家谅解啊 )
C语言真是学到老活到老
...全文
110 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
whizer 2013-01-23
  • 打赏
  • 举报
回复
1)一般来说,全局变量尽量少用,你如果非要用也可以,就是你说的把buf声明在.h中,你的ctrl.c引用这个.h。 2)比较通用的是,对大项目后期维护比较重要的采取接口的方法获得这个buf。如下:

capture.h
extern char * get_buf(void);//void 可以换成你自己需要的参数

capture.c
char * get_buf(void)//void 可以换成你自己需要的参数
{
    ....//自己的处理代码
    return buf;
}

ctrl.c
#inclue "capture.h"
func()
{
    char *buf = NULL;
....
    buf = get_buf();//在自己需要处理的函数里,获得buf并处理
....
}
Joseph_ 2013-01-23
  • 打赏
  • 举报
回复
2种方法: 第一你可以吧需要的用的变量定义成全局的之后 再对应的头文件中用extern 导入变量 那么使用的时候只要包括这个头文件即可 例如:在capture.cpp 中 char buf[1024]; capture.h extern char buf[1024]; ctrl.c 引入头文件 include "capture.h " 第二种你可以直接在需要使用的地方直接extern。 ctrl.c 直接extern char buf[1024];
xxb249 2013-01-23
  • 打赏
  • 举报
回复
不明白!!带高手
赵4老师 2013-01-23
  • 打赏
  • 举报
回复
仅供参考:
不要做A语言代码修改为B语言代码的无用功。
也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。
只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。
即可很方便地让A、B两种语言之间协调工作。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧