相关疑难解决方法(0)

我们为什么要在C中经常输入一个结构?

我见过许多程序,包括如下所示的结构

typedef struct 
{
    int i;
    char k;
} elem;

elem user;
Run Code Online (Sandbox Code Playgroud)

为什么经常这么需要?任何具体原因或适用范围?

c struct typedef

379
推荐指数
10
解决办法
49万
查看次数

警告:'...' 的声明在此函数之外不可见 [-Wvisibility]

首先,我用谷歌搜索了错误并阅读了这些答案:

但是他们都没有帮助我,所以我们来了。

问题存在于这两种结构之间,prx_data_s它们存储通用数据并prx_ops_s定义指向将使用该数据的函数的指针。

我将简化示例的来源:

prx_data.h

#ifndef PRX_EXAMPLE_DATA_H
#define PRX_EXAMPLE_DATA_H

#include "prx_ops.h"

struct prx_data_s {
    enum  prx_op_t op;
    char *keyquery;
};

char *get_query(struct prx_data_s *dt);

#endif
Run Code Online (Sandbox Code Playgroud)

prx_data.c

#include "prx_data.h"

char *get_query(struct prx_data_s *dt)
{
    return dt->keyquery;
}
Run Code Online (Sandbox Code Playgroud)

prx_ops.h

#ifndef PRX_EXAMPLE_OPS_H
#define PRX_EXAMPLE_OPS_H

#include "prx_data.h"

enum prx_op_t {
    PRX_EXAMPLE_OP = 2
};

struct prx_ops_s {
    int (*dec) (struct prx_data_s *);
};

#endif
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下示例编译对象:

clang -c prx_data.c -o prx_data.o -std=c11 -g -Wall
Run Code Online (Sandbox Code Playgroud)

这是输出错误:

In file …
Run Code Online (Sandbox Code Playgroud)

c

9
推荐指数
2
解决办法
8307
查看次数

标签 统计

c ×2

struct ×1

typedef ×1