2 minutes ago, ferreiradaselva said:
With Visual Studio, probably I wouldn't, but I use gcc (for Linux) and mingw (for Windows).
28 minutes ago, 0r0d said:
GCC can do this to.
2 minutes ago, ferreiradaselva said:
I get it that some people prefer C++ and find it more readable, but I prefer C
One thing to consider is offering optional extra headers that wrap the C stuff you've written in operator overloads that let C++ users avoid some of the more onerous aspects of having to type out "vector3_add" all the time. This is generally a reasonable compromise between keeping the core ideology of your library ("it's for C") and getting more users who might be able to provide you useful feedback on the inner workings of the library (or find bugs). Generally the surface area involved in C++ overload shims is small relative to the rest of the library -- although in your case, less so, since the library itself is still pretty small -- so you don't pay much more continued upkeep for it and most of the cost is in the initial implementation.
5 minutes ago, ferreiradaselva said:
The math part is kinda the one I'm more concerned to improve, tbh, as I don't have a great math background. I made this library checking codes from MonoGame and linmath. Linmath is in C, too, but missing some features that I added there (especially on quaternions and matrices).
Consider adding tests. This also works towards making your library more approachable (people can see there is a verification framework), and it tells you when you make a change that accidentally breaks stuff somehow. It also serves as a kind of documentation (although again, your library is still small and straightforward enough you don't really need that).
And it serves as a way to prove to yourself you're doing it right, especially when you're adding functionality for orthogonality (that is, because you think it's a function you should have since you have similar ones, not because you're actively needing it now yourself): you can verify your tests are correct by running them against another library that you know to be correct, if you're not comfortable working out and verifying the math by hand. Or you're too lazy to, like I am.
More generally, you might benefit from either providing some one-line comments above certain functions, or making their names slightly longer to make them more explicit in their purpose. There's a handful of them (like vectorX_angle, vectorX_min, vectorX_max, some rotation stuff) where the semantics aren't immediately obvious, or where absent any other information I can guess that they might do one or two potentially different things.
You may also want to consider taking the appropriate steps to ensure any particular alignment or padding guarantees, or at least document that you expect somebody else to do that via the appropriate magics before including your header.