首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在c语言嵌入式应用程序中,如何比较结构数组中的成员

在c语言嵌入式应用程序中,如何比较结构数组中的成员
EN

Stack Overflow用户
提问于 2017-06-09 14:18:04
回答 0查看 46关注 0票数 0

我有一个存储芯片,它有一个嵌入式系统串行读取的数据。存储设备具有10个位置,每个位置具有以下信息: customerID、NumOfParts、MFGName。这是我为此编写的C代码版本。

在C文件"PartName.h“中

代码语言:javascript
运行
复制
    //"PartName.h"
    #ifndef PartName_H
    #define PartName_H 

    typedef UINT8 MFGName_Struct_t [10];

    typedef struct
    {
        UINT8 customerID;
        UINT8 NumOfParts;
        MFGName_Struct_t MFGName;
    }IDENT_Struct_t;

    typedef struct MFG_Struct_t
    {
        UINT8 <some other variable>;        
        UINT8 <some other variable>;
        IDENT_Struct_t Ident1;
        IDENT_Struct_t Ident2;
        IDENT_Struct_t Ident3;
        IDENT_Struct_t Ident4;
        IDENT_Struct_t Ident5;
        IDENT_Struct_t Ident6;
        IDENT_Struct_t Ident7;
        IDENT_Struct_t Ident8;
        IDENT_Struct_t Ident9;
        IDENT_Struct_t Ident10; 
    } MFG_Struct_t;

    #endif

在C文件"HighNum.c“中

代码语言:javascript
运行
复制
    //"HighNum.c"
    #include "PartName.h"
    static MFG_Struct_t  MFG; 
    UINT8 HighNum(void)
   {
     //UINT8 i;
       UINT8 highestNum = 0;
     //for (i = 0;(i < 10);i++) 

       if (MFG.Ident1.NumOfParts > MFG.Ident2.NumOfParts)
       {
           highestNum = MFG.Ident1.NumOfParts;
       }
       if (MFG.Ident2.NumOfParts > MFG.Ident3.NumOfParts)
       {
           highestNum = MFG.Ident2.NumOfParts;
       }
       if (MFG.Ident3.NumOfParts > MFG.Ident4.NumOfParts)
       {
           highestNum = MFG.Ident3.NumOfParts;
       }
       if (MFG.Ident4.NumOfParts > MFG.Ident5.NumOfParts)
       {
           highestNum = MFG.Ident4.NumOfParts;
       }
       <and so on>      
     return highestNum;
   }

如何在C中更有效地完成这项工作?使用for语句还是While语句?我想过将数字部分连接起来并循环遍历变量...

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44450582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档