@startuml title Алгоритм работы препроцессора с stb_image.h start :Препроцессор встречает\n#include "stb_image.h"; :Открывает файл stb_image.h; :Обрабатывает строки 1-545\n(заголовочная часть); note right Эта часть ВСЕГДА включается: - typedef структур - объявления функций - макросы end note :Включает объявления в код; if (Определен макрос\nSTB_IMAGE_IMPLEMENTATION?) then (ДА) #LightGreen:Обрабатывает строки 547-7800+\n(блок реализации); note right Включается РЕАЛИЗАЦИЯ: ```cpp STBIDEF stbi_uc *stbi_load(...) { FILE *f = stbi__fopen(filename, "rb"); // ... код функции ... return result; } ``` end note :Включает реализацию в код; :Результат:\nФайл получает и объявления\nИ реализацию функций; else (НЕТ) #LightBlue:Пропускает блок\n#ifdef STB_IMAGE_IMPLEMENTATION; note right Реализация НЕ включается, только объявления: ```cpp STBIDEF stbi_uc *stbi_load(...); ``` end note :Результат:\nФайл получает ТОЛЬКО\nобъявления функций; endif :Передает результат компилятору; stop @enduml