Generate ctags file for C or C++ files and its depedencies (included header files). This could avoid you to always generate a huge tags file.
This won't work on MacOS since sed on MacOS does not interpret '\n' as a newline.
gcc -M $* | tr '\\ ' '\n' | sed -e '/^$/d' -e '/\.o:[ \t]*$/d' | \ ctags -L - --c++-kinds=+p --fields=+iaS --extra=+q
you could also replace the sed with gsed, and another hacks. but the above works for me. Thanks for the idea!