用c语言编写计算器使用全局变量,小弟我该如何避免使用全局变量

我该怎么避免使用全局变量

dsp上的串口接收来的命令,判断命令号来执行不同的动作

switch(gSciRecBuf[2])

{

case CMD_TEST_REDAY:

Sci_TestReady(gSciRecBuf[3]);

break;

case CMD_MOVE_WITH_PRINT:  //0x01

Sci_MoveWithPrint(gSciRecBuf[3]);

break;

case CMD_MOVE_WITH_NOPRINT:

Sci_MoveWithNoPrint(gSciRecBuf[3]);

break;

case CMD_STOP_PRINT: //0x10

Sci_StopPrint(gSciRecBuf[3]) ;

break;

case CMD_RETURN_CURRENT_POSITION:

break;

case CMD_RETURN_ACTION_RESULT:

break;

case CMD_MOVE_TO_ORIGIN:

Sci_MoveToOrigin(gSciRecBuf[3]);

break;

case CMD_MOVE_TEST:

Sci_MoveTest(gSciRecBuf[3]) ;

break;

case CMD_DSP_HANDSHAKE:

Sci_PC_ReturnHandShake(gSciRecBuf[3]);

break;

case CMD_BREAKLINE:

Sci_PC_ReturnBreakLine(gSciRecBuf[3]) ;

break ;

case CMD_SET_Z_SPEED:

Sci_Set_Z_Speed(gSciBufToSend[3]) ;

break ;

default:

break;

}

我现在是在相应的函数里设置一个全局变量(如果需要的话), 但全局变量多了, 我自己都觉得难受

例如

void Sci_PC_ReturnHandShake(Uint16 framenum)

{

gPC_ReturnHandShake = 1 ;

}

这些函数都是根据串口中断接收来的数据进行相关处理的

我想去掉这些全局变量, 但不知道该怎么改, 主函数里才可以及时的得知执行了此函数

分享到:

------解决方案--------------------

能不能不使用全局变量取决于你的程序结构,只看这段代码是分析不出来的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值