I am working in existing C code which has a couple of lines with statements similar to this one:
struct collect_conn *tc = (struct collect_conn *)
((char *
try switching the indexer to "Full c/C++ indexer (complete parse)" in Preferences->c/C++ -> indexer
I fixed similar problem after checking the tab Error Parsers in Makefile Project in New CDT Project Wizard, removing CDT Visual C Error Parser (I am using gcc)
I've seen Eclipse do this some times, and I use it for Java. Usually closing and opening the file again fixes it for me (resets whatever is wrong). It usually seems to be an error that WAS there but has been fixed and the "error cache" isn't updated correctly.
I've fixed problem in eclipse CDT with Preferences->C/C++->Language Mappings : Add Content Type : C-header Language : C++