单片机反汇编 2023-01-26 19:49 采纳率: 15.4%
浏览 24

C语言多个数组取数如何优化

下面的程序 写法有点繁琐,能不能换其它写法。


u8 table1[4]={0x12,0x34,0x56,0x78};
u8 table2[4]={0x12,0x34,0x56,0x78};
u8 table3[4]={0x12,0x34,0x56,0x78};
u8 table4[4]={0x12,0x34,0x56,0x78};

u8 test(u8 sel1,u8 s2)
{
  u8 temp1;
  if(sel1==0)temp1=table1[s2];
  else if(sel1==1)temp1=table2[s2];
  else if(sel1==2)temp1=table3[s2];
  else if(sel1==3)temp1=table4[s2];

  return temp1;
}
  • 写回答

1条回答 默认 最新

  • 社区专家-Monster-XH 2023-01-26 20:18
    关注

    回答不易,有用请采纳:
    可以使用数组指针来简化代码,代码如下:

    
    u8 table1[4]={0x12,0x34,0x56,0x78};
    u8 table2[4]={0x12,0x34,0x56,0x78};
    u8 table3[4]={0x12,0x34,0x56,0x78};
    u8 table4[4]={0x12,0x34,0x56,0x78};
    
    u8 test(u8 sel1,u8 s2)
    {
        u8* tables[4] = {table1, table2, table3, table4};
        return tables[sel1][s2];
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月26日