Cześć, załóżmy, że mamy taki kod, który buduje się do liba (takie api):
plik header.h:
#define STR "Siema"
plik cpp:
#include "header.h"
void Foo()
{
//blabla
}
Przy czym plik header.h nie jest bezpośrednią częścią API, tzn. nie jest dostarczany klientom.
Funkcja Foo gdzieś tam w jakiś sposób wykorzystuje makro STR.
Teraz mamy projekt, który sobie linkuje tego liba i pracuje z nim api. Wszystko działa i jest fajnie.
Jednak po pewnym czasie zmieniamy wartość makra STR na "Pędzę do ciebie światłowodem". Kompilujemy, tworząc nowego liba.
Teraz ten projekt, który pracował z oryginałem, linkuje sobie nowego liba. Czy będą błędy, czy wszystko będzie działać poprawnie?