_LINUX_EXPORT_H 宏的用途

_LINUX_EXPORT_H 宏的用途

在include/linux/export.h中定义_LINUX_EXPORT_H的目的是什么?它似乎是在此文件中定义的,从未在其他地方引用过。是多余的吗?

关联:github 上 torvalds/linux 中的 _LINUX_EXPORT_H

答案1

如果您仔细查看该文件,您会发现它以以下几行开头和结尾:

#ifndef _LINUX_EXPORT_H
#define _LINUX_EXPORT_H
...
#endif /* _LINUX_EXPORT_H */

这些行意味着如果该文件被包含两次(通过错误或通过包含包含该文件的另一个文件),则第二定义了该值周围的时间,因此整个文件被有效地跳过。

这些通常被称为“标头防护”或“包括警卫“并且您会注意到许多标准包含文件都使用此模式;pwd.h例如

#ifndef _PWD_H
#define _PWD_H  1

相关内容