exploring_cpp(01)g++ 相关参数

在读

Exploring C++: The Programmer's Introduction to C++

下面算半个读书笔记吧...

关于g++的一些参数记录

-pedantic
Issue all the warnings demanded by strict ISO C and ISO C++; reject all programs that use forbidden
extensions, and some other programs that do not follow ISO C and ISO C++. For ISO C, follows the
version of the ISO C standard specified by any -std option used.

Valid ISO C and ISO C++ programs should compile properly with or without this option (though a rare
few will require -ansi or a -std option specifying the required version of ISO C). However, without
this option, certain GNU extensions and traditional C and C++ features are supported as well. With
this option, they are rejected.

-pedantic does not cause warning messages for use of the alternate keywords whose names begin and end
with __. Pedantic warnings are also disabled in the expression that follows "__extension__". How-
ever, only system header files should use these escape routes; application programs should avoid
them.

Some users try to use -pedantic to check programs for strict ISO C conformance. They soon find that
it does not do quite what they want: it finds some non-ISO practices, but not all---only those for
which ISO C requires a diagnostic, and some others for which diagnostics have been added.

A feature to report any failure to conform to ISO C might be useful in some instances, but would
require considerable additional work and would be quite different from -pedantic. We don’t have
plans to support such a feature in the near future.

Where the standard specified with -std represents a GNU extended dialect of C, such as gnu89 or
gnu99, there is a corresponding base standard, the version of ISO C on which the GNU extended dialect
is based. Warnings from -pedantic are given where they are required by the base standard. (It would
not make sense for such warnings to be given only for features not in the specified GNU C dialect,
since by definition the GNU dialects of C include all features the compiler supports with the given
option, and there would be nothing to warn about.)

-ansi
Specify the standard to which the code should conform. Currently CPP knows about C and C++ stan-
dards; others may be added in the future.

standard may be one of:

"iso9899:1990"
"c89"
The ISO C standard from 1990. c89 is the customary shorthand for this version of the standard.

The -ansi option is equivalent to -std=c89.

"iso9899:199409"
The 1990 C standard, as amended in 1994.

"iso9899:1999"
"c99"
"iso9899:199x"
"c9x"
The revised ISO C standard, published in December 1999. Before publication, this was known as
C9X.

"gnu89"
The 1990 C standard plus GNU extensions. This is the default.

"gnu99"
"gnu9x"
The 1999 C standard plus GNU extensions.

"c++98"
The 1998 ISO C++ standard plus amendments.

"gnu++98"
The same as -std=c++98 plus GNU extensions. This is the default for C++ code.

原文地址:https://www.cnblogs.com/vimmer/p/2527152.html