哪个 C 标准引入了“__weak”关键字?
Which C-standard introduced the "__weak" keyword?
我想在我正在创建的库中使用 __weak
,但我想确保它符合已知的“C 编号”标准。这是哪个标准介绍的?还是大多数编译器都支持的非标准编译器扩展? (通过关键字或 __attribute__
。)
编辑:可能不应该使用术语“关键字”,最感兴趣的是某种形式的“弱”是否是标准?
__weak
不是 C 标准的一部分。
__weak
是特定于编译器的编译器扩展,例如在 Keil 和 COSMIC 编译器上可用。 __attribute__
是 gcc GNU C 编译器的编译器扩展,可用于 clang、TASKING 编译器、TI Arm 编译器等。例如,__weak
在 gcc 上无效。
您可以浏览 STM32CubeF4/cmsis_compiler.h 为 一些 编译器的 STM32Cube 项目的一些 compiler-specific 宏定义。
很常见,因为ELF format的流行,它支持弱符号。
我想在我正在创建的库中使用 __weak
,但我想确保它符合已知的“C 编号”标准。这是哪个标准介绍的?还是大多数编译器都支持的非标准编译器扩展? (通过关键字或 __attribute__
。)
编辑:可能不应该使用术语“关键字”,最感兴趣的是某种形式的“弱”是否是标准?
__weak
不是 C 标准的一部分。
__weak
是特定于编译器的编译器扩展,例如在 Keil 和 COSMIC 编译器上可用。 __attribute__
是 gcc GNU C 编译器的编译器扩展,可用于 clang、TASKING 编译器、TI Arm 编译器等。例如,__weak
在 gcc 上无效。
您可以浏览 STM32CubeF4/cmsis_compiler.h 为 一些 编译器的 STM32Cube 项目的一些 compiler-specific 宏定义。
很常见,因为ELF format的流行,它支持弱符号。