In your header file you #include <stdlib.h> outside the include-guard logic.

This means that your header file always includes another header file, even if it gets included twice.

In turn, this means that the compiler cannot "optimize away" your header file, since it always takes some action when it gets included.

Which means that repeatedly including your header file will always force the compiler to open a file, parse the contents, close the file, etc.

Better you should put the #include inside the guard logic. That will speed up compilation, as well as enabling the "skip-entire-file" logic built in to most compilers.

And you might want to consider changing to stddef.h instead of stdlib.h, since all you appear to use in the header file is size_t.