在include/linux/export.h中定义_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