split macro(ifdef/endif) based function