将军509 2024-08-09 10:44 采纳率: 0%
浏览 6

定义输出变量的任意类型

你好,在库的封装中如何定义输出变量的任意类型?以及该类型在app中的使用方式

img

  • 写回答

1条回答 默认 最新

  • 肾透侧视攻城狮 网络安全领域新星创作者 2024-08-12 19:48
    关注
    //麻烦采纳一下
    // mylib.h;定义头文件
    #ifndef MYLIB_H
    #define MYLIB_H
    
    // 包含必要的头文件
    #include <stddef.h> // For size_t
    
    // 函数声明
    void get_data(void **output, size_t *size);
    
    #endif // MYLIB_H
    
    //实现库函数 (mylib.c)
    // mylib.c
    #include "mylib.h"
    #include <stdlib.h>
    #include <string.h>
    
    void get_data(void **output, size_t *size) {
        // 示例数据
        static int data = 42;
        *size = sizeof(data);
    
        // 分配内存并复制数据
        *output = malloc(*size);
        if (*output != NULL) {
            memcpy(*output, &data, *size);
        }
    }
    //在应用程序中使用库 (main.c)
    // main.c
    #include <stdio.h>
    #include <stdlib.h>
    #include "mylib.h"
    
    int main() {
        void *data = NULL;
        size_t size = 0;
    
        // 从库中获取数据
        get_data(&data, &size);
    
        // 处理数据
        if (data != NULL) {
            // 假设我们知道数据的类型为 int
            int *int_data = (int *)data;
            printf("Received data: %d\n", *int_data);
    
            // 释放内存
            free(data);
        } else {
            printf("Failed to get data.\n");
        }
    
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月9日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境