为什么不能创建不透明的数据类型?

河豚

我正在尝试使用不透明的数据类型来理解它们。主要问题是我不断收到“不完整”错误。

main.c

#include <stdio.h>
#include <stdlib.h>
#include "blepz.h"

int main()
{
    setfnarp(GOO,5);
    int loogaboo = getfnarp(GOO);

    printf("%i", loogaboo);
    return 0;
}

fnarpishnoop.c

#include "blepz.h"

struct noobza {
    int fnarp;
};

void setfnarp(struct noobza x, int i){
    x.fnarp = i;
};

int getfnarp(struct noobza x){
    return x.fnarp;
};

blepz.h

struct noobza;

void setfnarp(struct noobza x, int i);

int getfnarp(struct noobza x);

struct noobza GOO;

我显然不明白这里的内容,我希望有人能帮我弄清楚如果不透明的数据类型的全部目的是您很难为它们找到实际的代码,那么它们是如何实现的。

SS安妮

struct如前所述,使用您尚未声明的内容的a会出现“不完整类型”错误。

而是使用指向的指针struct和返回指向的指针的函数struct,如下所示:

struct noobza;

struct noobza *create_noobza(void);

void setfnarp(struct noobza *x, int i);

int getfnarp(struct noobza *x);

struct noobza *GOO;

...

#include <stdlib.h>
#include "blepz.h"

struct noobza {
    int fnarp;
};

struct noobza *create_noobza(void)
{
    return calloc(1, sizeof(struct noobza));
}

void setfnarp(struct noobza *x, int i){
    x->fnarp = i;
};

int getfnarp(struct noobza *x){
    return x->fnarp;
};

...

#include <stdio.h>
#include <stdlib.h>
#include "blepz.h"

int main()
{
    GOO = create_noobza();
    setfnarp(GOO,5);
    int loogaboo = getfnarp(GOO);

    printf("%i", loogaboo);
    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C中的不透明数据类型

来自分类Dev

如何将Haskell数据作为不透明数据类型通过C FFI传递?

来自分类Dev

将C标头转换为Delphi-不透明数据类型

来自分类Dev

为什么 div 背景不透明?

来自分类Dev

为什么这个简单的不透明动画不能在SwiftUI中工作?

来自分类Dev

为什么我不能console.log div元素的不透明度

来自分类Dev

为什么以及在什么意义上pthread_t是不透明类型?

来自分类Dev

使用LLVM OCaml API创建不透明的结构类型

来自分类Dev

为什么不透明枚举声明不是定义?

来自分类Dev

为什么位置根据不透明度而变化

来自分类Dev

什么是不透明物体?

来自分类Dev

绝对定位且不透明的黑色div不能覆盖某个元素,我不知道为什么

来自分类Dev

带类的不透明类型

来自分类Dev

返回不透明类型的数组

来自分类Dev

Swift 不透明类型与协议 - 文档推断协议的函数不能嵌套

来自分类Java

为什么我不能在Java中将(字节)数据类型转换为(短)数据类型

来自分类Dev

创建不透明的可绘制波纹

来自分类Dev

什么是不透明令牌?

来自分类Java

为什么我不能够在Java中的长数据类型屏蔽32位

来自分类Dev

为什么 numpy 允许混合数据类型,但文档说它不能

来自分类Dev

为什么我不能在AWS Elasticsearch索引属性上定义Alias数据类型?

来自分类Java

Java为什么您的switch语句数据类型不能很长?

来自分类Java

为什么在Java中原始数据类型不能为“ null”?

来自分类Dev

在Scala中,为什么不能用不同的数据类型更改var变量的值

来自分类Dev

集合为什么不能存储可变数据类型?

来自分类Dev

为什么wash_out不能在不同的soap操作中使用相同的数据类型?

来自分类Dev

为什么我不能只使用 51 <= j <= 55?/ 数据类型

来自分类Dev

为什么undefined是数据类型

来自分类Dev

为什么数据类型会冲突?

Related 相关文章

  1. 1

    C中的不透明数据类型

  2. 2

    如何将Haskell数据作为不透明数据类型通过C FFI传递?

  3. 3

    将C标头转换为Delphi-不透明数据类型

  4. 4

    为什么 div 背景不透明?

  5. 5

    为什么这个简单的不透明动画不能在SwiftUI中工作?

  6. 6

    为什么我不能console.log div元素的不透明度

  7. 7

    为什么以及在什么意义上pthread_t是不透明类型?

  8. 8

    使用LLVM OCaml API创建不透明的结构类型

  9. 9

    为什么不透明枚举声明不是定义?

  10. 10

    为什么位置根据不透明度而变化

  11. 11

    什么是不透明物体?

  12. 12

    绝对定位且不透明的黑色div不能覆盖某个元素,我不知道为什么

  13. 13

    带类的不透明类型

  14. 14

    返回不透明类型的数组

  15. 15

    Swift 不透明类型与协议 - 文档推断协议的函数不能嵌套

  16. 16

    为什么我不能在Java中将(字节)数据类型转换为(短)数据类型

  17. 17

    创建不透明的可绘制波纹

  18. 18

    什么是不透明令牌?

  19. 19

    为什么我不能够在Java中的长数据类型屏蔽32位

  20. 20

    为什么 numpy 允许混合数据类型,但文档说它不能

  21. 21

    为什么我不能在AWS Elasticsearch索引属性上定义Alias数据类型?

  22. 22

    Java为什么您的switch语句数据类型不能很长?

  23. 23

    为什么在Java中原始数据类型不能为“ null”?

  24. 24

    在Scala中,为什么不能用不同的数据类型更改var变量的值

  25. 25

    集合为什么不能存储可变数据类型?

  26. 26

    为什么wash_out不能在不同的soap操作中使用相同的数据类型?

  27. 27

    为什么我不能只使用 51 <= j <= 55?/ 数据类型

  28. 28

    为什么undefined是数据类型

  29. 29

    为什么数据类型会冲突?

热门标签

归档