I personally hate Doxygen. I had to use it for a year. I didn't find it complicated or anything, I just found it had some screw ups and annoying things. I can't really remember what they were but I just remember I hated it. With that being said I should probably go get it again as I haven't used it in a while and see if it's any better now.
I hit its limitations very quickly... And it requires a lot of learning to get going...
Since my projects are usually home-brew, I just write my own documentation the way I like.
One problem Doxygen has that I couldn't figure out a way around was how it treated overloaded functions as their own function. For example say you have the following:
That is... the above 3 prototypes would be layed out, followed by the parameters for all overloads, followed by a common description / explanation for all of them.
AFAIK, in Doxygen, this can't be done (or at least I couldn't figure out a way to do it). And instead each overload is treated like an entirely seperate function, and the description / explanation / etc would have to be duplicated for each one.
That was my only major beef with Doxygen... but then again I don't have a lot of experience with those kinds of programs.
I recall having the same problem. No idea for some alternatives though - I just keep my code neat and comment my header files. No need to generate stuff for me at the current time anyway.
I comment both; but with a different style. I write "Doxygen comments" in my header files and then write "people comments" in implementation files, with the idea being that Doxygen need only look at .h[pp] files (I use .hpp for class declarations and .h for general header files) and people read the comments in my implementation files.
The preprocessor simply includes text files. They could be named anything you want (asdf, asdf.exe, asdf.h, asdf.hpp, 123, etc.)
I think .cpp & .hpp or .c and .h depending on C++ vs. C code is a good rule of thumb.
EDIT: I guess it's worth mentioning that the source file extension does have significance to the compiler. man gcc to find out the supported file extensions and how they correspond to different languages.
Not really. I used to use .hpp for headers that could not be used with C.
I do the same thing. If I want to make C++ functions accessible in C code I'll wrap the funtions in an extern "C" and put them in a .h file just as a little visual reminder...