C ++包含标准标头的防护

埃文·卡斯雷克

我想知道是否/什么包括文件,如警卫windows.hmath.hiostreamstdio...等等。

由于我将这些标头多次包含在不同的文件中。这些文件是否已经内置了防护措施,或者是否定义了定义?

我只是想知道这种事情的标准是什么。

BlueTrin

如果打开文件以读取内容(甚至可以在大多数编辑器中右键单击include指令以打开文件),您将看到包含文件通常以以下内容开头:

#ifndef _WINDOWS_
#define _WINDOWS_
...

因此,由于_WINDOWS_未定义,它将首次进入文件,因此将被定义,并且文件的内容将包括在内。#ifndef自定义之前完成以来,第二次失败。

这是放置防护措施的标准方法,而许多编译器支持的另一种方法是放置防护措施#pragma once例如,在有人在另一个文件中定义相同常量的情况下,这样做具有防止冲突的优点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章