Mingw 4.8.2 是否支持'#pragma once'
Does Mingw 4.8.2 support ' #pragma once'
我目前有以下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.
我的问题是 Mingw 是否支持 #pragma
关键字并且是否支持 #pragma once
真正的问题是 gcc(MinGW 系统的编译器部分)是否支持 #pragma once
。
答案是肯定的。 #pragma
特性实际上是由 gcc 使用的 C 预处理器支持的,它是单独记录的。 Gnu CPP 的 #pragma once
实现是 described here。根据您的系统配置方式,您可以通过键入 info cpp
并搜索 #pragma once
.
在您的系统上阅读此内容
不过,我不建议使用 #pragma once
。它不是由 C 标准指定的,因此它不能移植到其他编译器。除非你能保证你的代码永远不需要由不支持 #pragma once
的编译器编译,否则你最好使用传统的 #ifndef
方法,称为 "include guard",在previous section of the same manual.
中描述
我目前有以下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.
我的问题是 Mingw 是否支持 #pragma
关键字并且是否支持 #pragma once
真正的问题是 gcc(MinGW 系统的编译器部分)是否支持 #pragma once
。
答案是肯定的。 #pragma
特性实际上是由 gcc 使用的 C 预处理器支持的,它是单独记录的。 Gnu CPP 的 #pragma once
实现是 described here。根据您的系统配置方式,您可以通过键入 info cpp
并搜索 #pragma once
.
不过,我不建议使用 #pragma once
。它不是由 C 标准指定的,因此它不能移植到其他编译器。除非你能保证你的代码永远不需要由不支持 #pragma once
的编译器编译,否则你最好使用传统的 #ifndef
方法,称为 "include guard",在previous section of the same manual.