Mingw 4.8.2 是否支持“#pragma Once”

Jam*_*nco 4 gcc mingw

我目前有以下 mingw

gcc --version
gcc (x86_64-win32-seh-rev3, Built by MinGW-W64 project) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Run Code Online (Sandbox Code Playgroud)

我的问题是Mingw是否支持#pragma关键字以及是否支持#pragma once

Kei*_*son 5

真正的问题是 gcc(MinGW 系统的编译器部分)是否支持#pragma once.

答案是肯定的。该#pragma功能实际上由 gcc 使用的 C 预处理器支持,它是单独记录的。这里描述了#pragma onceGnu CPP 的实现。根据您的系统配置方式,您也许可以通过键入并搜索来在系统上阅读此内容info cpp#pragma once来在系统上阅读此内容。

但是,我不建议使用#pragma once。C 标准没有指定它,因此它不能移植到其他编译器。除非您可以保证您的代码永远不需要由不支持的编译器进行编译#pragma once,否则您最好使用传统#ifndef方法,称为“包含防护”,如同一手册的上一节所述。