• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

如何用C语言写结构体函数?

hayden 2018-03-21 浏览量:1615

在c++中可以方便的使用class来定义函数并调用如class.func();

在C语言中如何使用结构体函数实现这种调用呢?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 使用函数指针,初始化的时候,给定相关函数

    typedef struct

    {
    bool gprs_device_ok;
    uint8_t gprs_config_step;
    uint8_t gprs_net_work;
    uint8_t gprs_net_work_last;
    uint8_t initErrCnt;
    uint8_t relinkCnt;
    bool (*linkserver)(const char * ip, const char * ComNum, uint8_t id);
    bool (*closeserver)(uint8_t linkID);
    }GPRS_DEV_INFO_T;
    • 发布于 2018-03-22
    • 举报
    • 评论 1
    • 2
    • 0
电子老工程师 回复了 :TM21P-88P(03)这物料带有黑色屏蔽。 回复

其他答案 数量:10
  • 构造一个结构体,成员是指针,指针指向你的函数。

    建议看看 linux 驱动的框架,都是 c 代码写的结构体函数

    • 发布于2018-03-21
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :Sales Product Name:IPP200N25N3 G OPN:IPP200N25N3GXKSA1 同一个型号。 回复

  • 因为c支持指针,而指针可以指向任何内存中的东西,所以实质上可以用这个途径实现结构体函数功能。
    • 发布于2018-03-22
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :UCD1V101MNL1GS替代型号: EDK107M035S9HAA KEMET 没有符合替代。 回复

电子老工程师 回复了  :没有库存替代型号。 回复

  • 实际上就是用的指针

    比如定义了一个结构体
    typedef_t struct
    {
        uint16_t year;
        uint8_t month;
        uint8_t day;
        uint8_t hour;
        uint8_t minute;
        uint8_t second;
        uint32_t ntp;
    }protocolTime_t;
    ​然后是创建
     protocolTime_t TimeNTP;    
    然后是使用
    TimeNTP.year = ExchangeBytes();


    • 发布于2018-03-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 结构体就是一些类型变量的集合,通过指针进行操作,与数组比较相似,但是结构体可以将不同的类型的变量结合在一起,这点是数组所比不了的。

    可以看看这个,其实结构体的使用还是挺简单的,但是涉及到链表的话就难了。

    http://blog.csdn.net/si_zhou_qun_84342712/article/details/53186992

    • 发布于2018-03-22
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :ADI(亚德诺 LT8614IUDC#TRPBF 请参考。 回复

  • 结构体中定义指向函数地址的指针,调用时使用指针进行调用。
    • 发布于2018-03-22
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :封装: SOT-23(SOT-23-3) 品牌: onsemi(安森美) 型号: NUD3124LT1G https://atta.szlcsc.com/upload/public/pdf/source/20170325/1490427881949.PDF 回复

  • 函数指针做 结构体成员变量就可以。记得使用前要先赋值。
    • 发布于2018-03-22
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :1。客户是用2个接头连接器系列不同(QTH;QSH)触点类型,会有电流传输温升过高的风险。 2.需要确认客户测试条件和测试目的。 回复

  • 定义函数地址指针为结构体变量,之后定义函数赋值就可以了。
    • 发布于2018-03-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 结构体中一般是使用函数指针进行函数的调用。
    对结构体赋值时,给这个指针指定一个函数实体,就可以如你那样的方式调用了。
    • 发布于2018-03-22
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :Peak Solder Reflow Body Temper atur e.................245°C 回复

  • 现在的cpp标准是支持struct里面写函数的,struct和class基本上没有区别,纯C就没有必要这样做了,因为纯C是面向过程语言。

    • 发布于2018-03-29
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :立创可以查到: https://www.analog.com/media/en/technical-documentation/data-sheets/ad8421.pdf 回复

相关问题

问题达人换一批

如何用C语言写结构体函数?