如何检查是否定义了头部保护

时间:2017-04-11 04:17:38

标签: c++ header-files precompiled-headers

我有这些文件是给我解决的,我对标题保护有一些疑问。

  1. testGuards.h中,有一个类似__HEADER_GUILD_SAFEBOX__的定义,但#ifdef询问是否定义了__GUILD_SAFEBOX__,所以我不知道是否#ifdef {1}}应该询问__HEADER_GUILD_SAFEBOX__而不是__GUILD_SAFEBOX__

  2. testCpp.h我问是否已定义__GUILD_SAFEBOX__,但据我所知,它已在testGuards.h中定义,但在此处(在cpp中),我们永远不要进入#ifdef,我不知道,如何知道是否未定义,如果没有定义,则定义它。

  3. 我有2个代码。

    testGuards.h

    #ifndef __HEADER_GUILD_SAFEBOX__
    #define __HEADER_GUILD_SAFEBOX__
    
    #include "stdafx.h"
    
    #ifdef __GUILD_SAFEBOX__
    [...]
    #endif
    

    testCpp.cpp

    #include "stdafx.h"
    
    #ifdef __GUILD_SAFEBOX__
    #include "../common/tables.h"
    [...]
    #endif
    

1 个答案:

答案 0 :(得分:0)

您可以打印邮件,因为包含了标题。之后,您可以手动/自动检查您想要的任何内容。

关注此answer

警告指令可能是你得到的最接近的,但它并不完全与平台无关:

#warning "C Preprocessor got here!"

AFAIK适用于大多数编译器,除了MSVC,你必须使用pragma指令:

#pragma message ( "C Preprocessor got here!" )