C __typedefs的属性(弱)

C __typedefs的属性(弱),c,overriding,typedef,weak,C,Overriding,Typedef,Weak,使用\uuuu attribute\uuuu((弱))我可以声明一个函数,该函数将被具有相同名称但没有\uuuu attribute\uuuu((弱))参数的函数覆盖。是否有一种方法可以在C中使用typedefs执行类似的操作?例如,我会在模板库中声明一个“弱”typedef: my_weak typedef int myType_t; 然后在新文件中,我执行以下操作: typedef float myType_t 所以myType\u t是一个float,而不是int。我非常感谢您的帮助。

使用
\uuuu attribute\uuuu((弱))
我可以声明一个函数,该函数将被具有相同名称但没有
\uuuu attribute\uuuu((弱))
参数的函数覆盖。是否有一种方法可以在C中使用
typedefs
执行类似的操作?例如,我会在模板库中声明一个“弱”typedef:

my_weak typedef int myType_t;
然后在新文件中,我执行以下操作:

typedef float myType_t

所以
myType\u t
是一个float,而不是int。我非常感谢您的帮助。

您为什么需要它?类型仅在其作用域中可见。如果你不喜欢某种类型-不要包含它的定义…“弱”最终适用于符号,由链接器解释。TypeDef不是一个向链接器公开的概念…此代码用于MCU。我正在创建一个通用库。在该库中,可以使用uart模块,也可以不使用。在结构中有一个指向uart结构的指针,该结构是一个typedef。只有uart lib可见时,typedef才可见。如果不使用uart变量,则不可见(未添加到项目中)。但指针必须保留在结构中(即使未使用)。由于该结构的typedef现在未知,因此无法编译。这就是为什么我认为我可以在这个场合使用一些默认的dummy typedef。如果它提出这样的问题,那可能不是最好的设计。只有我们,如果定义我的类型#endif在结构中的字段周围。前面的注释不正确,抱歉<代码>ifdef无法处理类型名称。但是您的uart头可以定义一些符号,如“
使用\u uart
”。您为什么需要它?类型仅在其作用域中可见。如果你不喜欢某种类型-不要包含它的定义…“弱”最终适用于符号,由链接器解释。TypeDef不是一个向链接器公开的概念…此代码用于MCU。我正在创建一个通用库。在该库中,可以使用uart模块,也可以不使用。在结构中有一个指向uart结构的指针,该结构是一个typedef。只有uart lib可见时,typedef才可见。如果不使用uart变量,则不可见(未添加到项目中)。但指针必须保留在结构中(即使未使用)。由于该结构的typedef现在未知,因此无法编译。这就是为什么我认为我可以在这个场合使用一些默认的dummy typedef。如果它提出这样的问题,那可能不是最好的设计。只有我们,如果定义我的类型#endif在结构中的字段周围。前面的注释不正确,抱歉<代码>ifdef无法处理类型名称。但是您的uart头可以定义一些符号,如“
USE\u uart
”。