多项选择题

A.可以用于防止在编译源文件时同一头文件被重复包含
B.如果不用它,在编译源文件可能会碰到重复定义的错误.
C.它可以用来区分当前的编译器是C或是C++编译器
D.编译器是在预处理阶段完成对它的处理