在C或C++中,我可以对哪些文件可以包含我的头文件施加限制

use*_*341 5 c include header-files

在C/C++中,我编写了一个可供所有人使用的头文件,但是我想限制包含它的文件.如果我的头文件包含在"未授权"的c/cxx文件中,是否有任何方法可以生成编译器错误?

Ant*_*ala 6

当然没有适当的安全功能(这很简单),但你可以做的是在包含文件时如果某个宏不存在则在头文件中产生错误,这样你header.h就可以开始了

#ifndef AUTHORIZED_TO_INCLUDE_THE_HEADER
#error "You're not authorized to include this file"
#endif
Run Code Online (Sandbox Code Playgroud)

然后在包含这个的文件中,做

#define AUTHORIZED_TO_INCLUDE_THE_HEADER
#include "header.h"
Run Code Online (Sandbox Code Playgroud)