相关疑难解决方法(0)

不透明的C结构:它们应该如何声明?

我已经看到以下两种在C API中声明不透明类型的样式.使用一种风格而不是另一种风格有明显的优势吗?

选项1

// foo.h
typedef struct foo * fooRef;
void doStuff(fooRef f);

// foo.c
struct foo {
    int x;
    int y;
};
Run Code Online (Sandbox Code Playgroud)

选项2

// foo.h
typedef struct _foo foo;
void doStuff(foo *f);

// foo.c
struct _foo {
    int x;
    int y;
};
Run Code Online (Sandbox Code Playgroud)

c struct coding-style typedef opaque-pointers

46
推荐指数
2
解决办法
3万
查看次数

什么是FILE的数据类型?

什么是C语言或其他语言的FILE数据类型?它是整数或结构还是没有特定的数据类型?

c

4
推荐指数
2
解决办法
1万
查看次数

隐藏结构如何工作?

我在几个API中注意到,您可以创建一个内部使用且没有任何内容的结构.例如:

ALLEGRO_BITMAP *bmp;

...
bmp->(intellesense shows nothing)
Run Code Online (Sandbox Code Playgroud)

这些类型的结构如何工作?他们只是在内部处理吗?

REAL_ALLEGRO_BITMAP *realbmp = (REAL_ALLEGRO_BITMAP*)bmp;
Run Code Online (Sandbox Code Playgroud)

还是有更清洁的解决方案?

谢谢

c c++

2
推荐指数
1
解决办法
491
查看次数

标签 统计

c ×3

c++ ×1

coding-style ×1

opaque-pointers ×1

struct ×1

typedef ×1