Sure it lives a single file, but considering the length, wouldn't it actually be better to split it into multiple files? I'm not that familiar with C, it seems to be a "thing" in C to just have giant files.
I mostly use C#, and a while back I settled on a middle ground, where closely-related classes and interfaces are grouped together in a single file.
When I'm working on web apps/APIs, I usually follow the "feature folder" concept too, where all the most central parts are together in the same file.