Find all files whose name does not end with "~" and ends with ".c" or ".h", and execute the command "grep -HnE '^[ \t]*#define' <file>", where <file> is each of the found files.
find ! -name "*~" -and -name "*.[ch]" -exec grep -HnE '^[ \t]*#define' {} \;