如何以非标准方式在C中键入def结构

如何以非标准方式在C中键入def结构,c,struct,typedef,C,Struct,Typedef,我在用非标准方式定义C中的结构时遇到了一个问题 我正在编写自己的内核 结构时间{ 国际秒; int-min; 整小时; 内蒙特迪; 整月; //从1900年算起 国际年; //周日;0-周日…6-周六 工作日内; //年日从0开始计算 国际年日; //如果>0,则有夏季时间,如果0,则有标准时间, //如果

我在用非标准方式定义C中的结构时遇到了一个问题

我正在编写自己的内核

结构时间{ 国际秒; int-min; 整小时; 内蒙特迪; 整月; //从1900年算起 国际年; //周日;0-周日…6-周六 工作日内; //年日从0开始计算 国际年日; //如果>0,则有夏季时间,如果0,则有标准时间, //如果<0,则没有关于时间的信息 国际时区; }; typedef struct Time struct tm;//不起作用: 我这里有个编译错误。我想用两种方式定义结构时间变量:

结构时间a; struct tm b;
我想有能力在tm b之前编写结构;因为我想标记类型tm是一个结构类型,而不是简单的基元类型。

您试图做的事情在很多方面都很奇怪。我看不出一个好的用例,但既然你问了,我会提供一个解决方案。但我强烈反对这样做

#define tm Time

struct Time {
    int sec;
};

struct Time a;
struct tm b;

用常规的typedef解决这个问题是不可能的。

你为什么不想用标准的方法来做呢?你到底想做什么?你需要解决的实际问题是什么?请花一些时间阅读和,以及关于,因为您的问题是一个。如果您使用typedef struct time tm,那么您可以像tm b;一样声明一个;。你为什么不想要呢?你知道标准的C结构吗?你为什么要更换它?同样,通过重载标准tm结构,您需要解决的真正问题是什么?老实说,您说您想使用struct tm是因为您想使用struct tm。这真的没有理由,而且你还没有告诉我们你为什么想要它,或者如果有什么问题的话,应该解决什么问题。我们只能得出这样的结论:除了固执之外,你真的没有什么理由,你真的没有什么具体的问题需要解决。