Léxico TI › Programación › Símbolo débil (weak symbol)

Símbolo débil (weak symbol)

Programación Svenska → Actualizado: 2026-11-03

Una definición que el enlazador solo usa si no aparece otra definición "fuerte" con el mismo nombre.

En GCC y Clang se escribe __attribute__((weak)), y ELF lo admite de forma nativa. El mundo embebido lo usa a lo grande: los archivos de arranque de CMSIS definen cada manejador de interrupción como alias débil de un Default_Handler que se limita a girar en un bucle infinito. Si escribes tu propio USART1_IRQHandler, gana el tuyo; si no escribes ninguno, la interrupción acaba en el bucle en lugar de fallar el enlazado.

La otra cara es que una errata —USART1_IRQhandler— o un extern "C" olvidado en C++ compila sin una sola advertencia. El programa se cuelga luego en Default_Handler la primera vez que llega la interrupción, y eso da para una de las sesiones de depuración más desconcertantes del oficio.

← Volver al léxico