Leksykon IT › Programowanie › Symbol słaby (weak symbol)

Symbol słaby (weak symbol)

Programowanie Svenska → Zaktualizowano: 2026-11-03

Definicja, której konsolidator używa tylko wtedy, gdy nie znajdzie innej, „silnej” definicji tej samej nazwy.

GCC i Clang zapisują to jako __attribute__((weak)), a ELF obsługuje to natywnie. Kod wbudowany intensywnie z tego korzysta: pliki startowe CMSIS definiują każdą procedurę obsługi przerwania jako słaby alias do Default_Handler, który po prostu kręci się w nieskończoność. Napisz własne USART1_IRQHandler, a ono wygra; nie napisz żadnego, a przerwanie wyląduje w pętli, zamiast zakończyć konsolidację błędem.

Druga strona medalu: literówka — USART1_IRQhandler — albo zapomniane extern "C" w C++ kompiluje się bez słowa skargi. Program zawiesza się wtedy w Default_Handler przy pierwszym wystrzeleniu przerwania, co daje jedną z bardziej zdumiewających sesji debugowania, jakie ten fach ma do zaoferowania.

← Wróć do leksykonu