指向c中匿名结构数组的指针

罗伯特

所以我有一个这样声明的数组(这不是我的代码,我不会修改它):

static const struct {
    int gsmesc;
    int latin1;
    int utf8_int;
    char *utf8;
    ...

} gsm_escapes[] = {
    {  10, 12 , 0x0C, "\x0C" },
    {  20, '^', 0x5E, "\x5E" }, 
    ...
};

请注意,结构本身是未标记的

我想用一个指针(而不是数组下标)迭代这个数组,我能想到的最好的就是这个,它在编译时没有任何警告:

typeof(*gsm_escapes) *esc;
...

esc = gsm_escapes;
while (esc++->gsmesc != -1) {

    esc = gsm_escapes;
    while (esc->gsmesc != -1) {

是否有一种“正确”的方法来声明这种指针类型,因为这种方法似乎一反常态地不优雅?

这种类型的数据结构甚至叫什么?我已经在谷歌上搜索了一段时间,但还没有想出任何涵盖它的引物。

灌木丛

使用typeof是唯一直接的方法,因为结构没有标签。它也是非标准的,因此并非所有编译器都支持它。

您的选择是:

  • 保持原状
  • 使用数组表示法而不是指针表示法:

    int i=0;
    while (gsm_escapes[i++]->gsmesc != -1) {
    
        i=0;
        while (gsm_escapes[i]->gsmesc != -1) {
    
  • 使用typedef为结构创建一个typeof这样typeof表达式只出现一次:

    typedef typeof(*gsm_escapes) struct_gsm_escapes;
    ...
    struct_gsm_escapes *esc;
    

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

指向C中结构的指针

来自分类Dev

是否在C中的结构内返回指向char数组的指针?

来自分类Dev

指向C中的前向声明结构数组的指针

来自分类Dev

从指向C中的结构的指针数组获取信息

来自分类Dev

C中的结构内的指针指向的自由数组

来自分类Dev

指向结构中数组的C指针传递给函数

来自分类Dev

如何在实现XFS的C ++中动态填充结构的指针,该结构是指向数组的指针

来自分类Dev

指向函数中的结构数组的指针

来自分类Dev

指向结构体中数组的指针

来自分类Dev

指向函数中的结构数组的指针

来自分类Dev

创建指向结构的指针数组-C ++

来自分类Dev

如何创建指向结构的指针数组?C ++

来自分类Dev

C - 指向动态结构数组的指针

来自分类Dev

指针数组(指向结构)

来自分类Dev

指向结构数组的指针

来自分类Dev

指向C中数组的指针

来自分类Dev

指向C中的int指针数组的指针

来自分类Dev

C ++从指向结构的指针(包括数组中的目标结构)读取值

来自分类Dev

结构节点具有指向C中的结构节点的指针的数组

来自分类Dev

在Python中访问指向结构的C指针

来自分类Dev

在C中返回指向结构的指针

来自分类Dev

指向c中的结构的sizeof指针

来自分类Dev

将指向结构的指针保存到指针数组中

来自分类Dev

指向C ++结构的指针

来自分类Dev

从现有结构数组中查找并返回指向结构的指针

来自分类Dev

静态初始化结构A的数组,其中结构A包含一个指向结构B的数组的指针(在C中)

来自分类Dev

C++ -- 指向结构数组的指针,该数组包含指向不工作的类数组的指针

来自分类Dev

C ++中结构的指针数组

来自分类Dev

指向结构体数组的指针

Related 相关文章

热门标签

归档