c语言如何取代全局变量,如何在c中不使用全局变量

我已经阅读了墙上的文字,避免全球.这导致了一个显而易见的问题,如何最好地做到这一点?

我显然想用当前的项目来做.目标是让远程PC向已经拥有stdin阅读器的应用程序发送“击键”.我们的想法是让现有的代码检测到没有待处理的击键,然后检查是否有“udp击键”,如果是,则将其填入所以它似乎是键盘输入.微创,不需要在其他人的代码中改装.

所以我拼凑了一个小的UDP套接字阅读器,它使用setup()函数打开并绑定端口,然后在循环中使用service()函数,使用非阻塞select()一次,没有循环,只检查是否有任何东西现在就读.如果是这样,请从套接字读取数据并对其执行某些操作,否则返回0.

// pseudo c

char c;

setup();

while (1)

{

c = check_for_keyboard_entry();

if ( c == 0 )

c = service();

handle_keypress( c );

do_a_bunch_of_other_stuff();

}

显而易见的方法是使用一些全局变量来传输两个函数之间的端口,超时,sockaddr等.但是,你应该使用全局,对吗?

那么在函数之间传递六个或八个变量的首选方法是什么?

如果我在setup()中使用static vars,它们是否可以通过service()例程访问?

我想一个获得malloc-ed并传递的结构会起作用.我应该有一个cleanup()来关闭套接字并释放内存.

记住,这是一个C问题.没有C!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值