当然可以,宏定义是预处理的。在什么地方写都可以。编译器只是把宏定义的作替换。定义好的宏,在真正编译的时候被所定义的块给替换了。
这个属于预处理器的工作,没什么全局,局部的概念,只要是这条语句之后的就受其影响,之前的就不受,编译程序那里这些东西已经全部替换掉了
不能
#define这种预编译指令在哪写都可以建议你去看看预编译的知识,对这个多一点了解,网上就有很多的