mark一个嵌套结构体的调用,再怎么重定义都只看最后一个,比如下面的E

#include <stdio.h>

typedef int X1;     // 假设X1为int类型
typedef float X2;   // 假设X2为float类型

typedef struct {
    X1 x1;
    X2 x2;
} A;

typedef struct {
    A B;
} C;

typedef C D;
typedef D E;

// 返回函数指针的函数
void (*function(E* param))() {
    printf("Received param: x1=%d, x2=%.2f\n", param->B.x1, param->B.x2);
    return someFunction;
}

// 被返回的函数
void someFunction() {
    printf("Function F is called.\n");
}

int main() {
    // 1. 创建并初始化E类型的变量
    E myStruct;
    myStruct.B.x1 = 42;    // 假设X1为int
    myStruct.B.x2 = 3.14f; // 假设X2为float

    // 2. 调用function获取函数指针
    void (*F)() = function(&myStruct);

    // 3. 通过函数指针调用函数
    F();

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值