Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为具有相同主体的结构赋予不同的名称_C_Struct - Fatal编程技术网

C 为具有相同主体的结构赋予不同的名称

C 为具有相同主体的结构赋予不同的名称,c,struct,C,Struct,我有一个代码重复的情况,我有完全相同的结构体,但名称不同。结构体并不小,因此在将来修改代码时存在注入错误的风险。以下只是一个例子来说明问题: struct read_data_on_disk { int a; char b; }; struct read_data { int a; char b; }; 可以定义其中一个,比如说在磁盘上读取数据,另一个可以定义为它的别名?我正在寻找以下内容: typedef struct read_data_on_disk st

我有一个代码重复的情况,我有完全相同的结构体,但名称不同。结构体并不小,因此在将来修改代码时存在注入错误的风险。以下只是一个例子来说明问题:

struct read_data_on_disk {
    int a;
    char b;
};
struct read_data {
    int a;
    char b;
};
可以定义其中一个,比如说在磁盘上读取数据,另一个可以定义为它的别名?我正在寻找以下内容:

typedef struct read_data_on_disk struct read_data; // this is wrong though

几乎是这样。试试这个:

struct read_data_on_disk {
    int a;
    char b;
};

typedef struct read_data_on_disk read_data;

但正如dbush在上面指出的,如果两个结构的内容相同,为什么要有两个呢?

这几乎是对的。试试这个:

struct read_data_on_disk {
    int a;
    char b;
};

typedef struct read_data_on_disk read_data;

但正如dbush在上面指出的,如果两个结构的内容相同,为什么要有两个结构?

如果两个结构除了结构名称之外总是完全相同,为什么要有两个结构?使用
typedef struct read_data_on_disk read_data
。删除最后一个
struct
。如果这两个结构除了结构名之外总是完全相同,为什么有两个结构?使用
typedef struct read\u data\u on\u disk read\u data
。删除最后一个
结构