MST

星途 面试题库

面试题:C语言结构体指针及函数指针在结构体中的应用

定义一个结构体,其中包含一个指向函数的指针成员,该函数接收两个结构体指针作为参数并返回一个整数。编写函数实现该功能,并展示如何在主函数中调用这个结构体中的函数指针。
33.4万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>

// 定义结构体
typedef struct {
    int (*func)(struct MyStruct *, struct MyStruct *);
} MyStruct;

// 定义函数,满足函数指针的类型要求
int myFunction(struct MyStruct *a, struct MyStruct *b) {
    // 这里简单返回两个结构体地址的差值,可根据实际需求修改
    return (int)(a - b);
}

int main() {
    MyStruct s1, s2;
    // 初始化结构体中的函数指针
    s1.func = myFunction;
    s2.func = myFunction;

    // 调用结构体中的函数指针
    int result = s1.func(&s1, &s2);
    printf("函数指针调用结果: %d\n", result);

    return 0;
}

上述代码定义了一个结构体MyStruct,其中包含一个函数指针func,该函数指针指向的函数接收两个MyStruct结构体指针并返回一个整数。定义了myFunction函数满足函数指针的类型要求,并在main函数中初始化结构体中的函数指针并调用该函数指针。

注意:在实际应用中,myFunction函数内部逻辑应根据具体业务需求进行编写。