add implementation for macro expand for c,c++