之所以要区分内核态和用户态,应该对应结构和函数本社就有特殊的应用场景。内核中还有专门开放出来头文件给用户态去使用,比如 netfilter queue 之类的。所以不太明白你的需求是什么。一个头文件中还要区分内核态和用户态,那么最好的方法是分开成不同的头文件。