亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cpp.texi

?? 一個能在WIN32環境下使用GCC的功能進行程序設計的SHE
?? TEXI
?? 第 1 頁 / 共 5 頁
字號:
\input texinfo
@setfilename cpp.info
@settitle The C Preprocessor
@setchapternewpage off
@c @smallbook
@c @cropmarks
@c @finalout

@macro copyrightnotice
@c man begin COPYRIGHT
Copyright @copyright{} 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation.  A copy of
the license is included in the accompanying manual for GCC, in the
section ``GNU Free Documentation License''.
@c man end
@end macro

@c The manpage doesn't have Front-Cover and Back-Cover Texts, but the
@c complete manual does.  -zw

@ignore
@c man begin COPYRIGHT
This manual contains no Invariant Sections, and has no Front-Cover Texts
or Back-Cover Texts.
@c man end
@end ignore

@macro covertexts
This manual contains no Invariant Sections.  The Front-Cover Texts are
(a) (see below), and the the Back-Cover Texts are (b) (see below).

(a) The FSF's Front-Cover Text is:

     A GNU Manual

(b) The FSF's Back-Cover Text is:

     You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development.
@end macro

@macro gcctabopt{body}
@code{\body\}
@end macro

@ifinfo
@dircategory Programming
@direntry
* Cpp: (cpp).		       The GNU C preprocessor.
@end direntry
@end ifinfo

@titlepage
@title The C Preprocessor
@subtitle Last revised April 2001
@subtitle for GCC version 3
@author Richard M. Stallman
@author Zachary Weinberg
@page
@c There is a fill at the bottom of the page, so we need a filll to
@c override it.
@vskip 0pt plus 1filll
@copyrightnotice{}
@covertexts{}
@end titlepage
@contents
@page

@ifinfo
@node Top
@top
The C preprocessor implements the macro language used to transform C,
C++, and Objective C programs before they are compiled.  It can also be
useful on its own.

@menu
* Overview::
* Header Files::
* Macros::
* Conditionals::
* Diagnostics::
* Line Control::
* Pragmas::
* Other Directives::
* Preprocessor Output::
* Traditional Mode::
* Implementation Details::
* Invocation::
* Index of Directives::
* Concept Index::

@detailmenu
 --- The Detailed Node Listing ---

Overview

* Initial processing::
* Tokenization::
* The preprocessing language::

Header Files

* Include Syntax::
* Include Operation::
* Search Path::
* Once-Only Headers::
* Computed Includes::
* Wrapper Headers::
* System Headers::

Macros

* Object-like Macros::
* Function-like Macros::
* Macro Arguments::
* Stringification::
* Concatenation::
* Variadic Macros::
* Predefined Macros::
* Undefining and Redefining Macros::
* Macro Pitfalls::

Predefined Macros

* Standard Predefined Macros::
* Common Predefined Macros::
* System-specific Predefined Macros::
* C++ Named Operators::

Macro Pitfalls

* Misnesting::
* Operator Precedence Problems::
* Swallowing the Semicolon::
* Duplication of Side Effects::
* Self-Referential Macros::
* Argument Prescan::
* Newlines in Arguments::

Conditionals

* Conditional Uses::
* Conditional Syntax::
* Deleted Code::

Conditional Syntax

* Ifdef::
* If::
* Defined::
* Else::
* Elif::

Implementation Details

* Implementation-defined behavior::
* Implementation limits::
* Obsolete Features::
* Differences from previous versions::

Obsolete Features

* Assertions::
* Obsolete once-only headers::
* Miscellaneous obsolete features::

@end detailmenu
@end menu

@copyrightnotice{}
@covertexts{}
@end ifinfo

@node Overview
@chapter Overview
@c man begin DESCRIPTION
The C preprocessor, often known as @dfn{cpp}, is a @dfn{macro processor}
that is used automatically by the C compiler to transform your program
before compilation.  It is called a macro processor because it allows
you to define @dfn{macros}, which are brief abbreviations for longer
constructs.

The C preprocessor is intended to be used only with C, C++, and
Objective C source code.  In the past, it has been abused as a general
text processor.  It will choke on input which does not obey C's lexical
rules.  For example, apostrophes will be interpreted as the beginning of
character constants, and cause errors.  Also, you cannot rely on it
preserving characteristics of the input which are not significant to
C-family languages.  If a Makefile is preprocessed, all the hard tabs
will be removed, and the Makefile will not work.

Having said that, you can often get away with using cpp on things which
are not C.  Other Algol-ish programming languages are often safe
(Pascal, Ada, etc.) So is assembly, with caution.  @option{-traditional}
mode preserves more white space, and is otherwise more permissive.  Many
of the problems can be avoided by writing C or C++ style comments
instead of native language comments, and keeping macros simple.

Wherever possible, you should use a preprocessor geared to the language
you are writing in.  Modern versions of the GNU assembler have macro
facilities.  Most high level programming languages have their own
conditional compilation and inclusion mechanism.  If all else fails,
try a true general text processor, such as GNU M4.

C preprocessors vary in some details.  This manual discusses the GNU C
preprocessor, which provides a small superset of the features of ISO
Standard C@.  In its default mode, the GNU C preprocessor does not do a
few things required by the standard.  These are features which are
rarely, if ever, used, and may cause surprising changes to the meaning
of a program which does not expect them.  To get strict ISO Standard C,
you should use the @option{-std=c89} or @option{-std=c99} options, depending
on which version of the standard you want.  To get all the mandatory
diagnostics, you must also use @option{-pedantic}.  @xref{Invocation}.
@c man end

@menu
* Initial processing::
* Tokenization::
* The preprocessing language::
@end menu

@node Initial processing
@section Initial processing

The preprocessor performs a series of textual transformations on its
input.  These happen before all other processing.  Conceptually, they
happen in a rigid order, and the entire file is run through each
transformation before the next one begins.  GNU CPP actually does them
all at once, for performance reasons.  These transformations correspond
roughly to the first three ``phases of translation'' described in the C
standard.

@enumerate
@item
@cindex character sets
@cindex line endings
The input file is read into memory and broken into lines.

GNU CPP expects its input to be a text file, that is, an unstructured
stream of ASCII characters, with some characters indicating the end of a
line of text.  Extended ASCII character sets, such as ISO Latin-1 or
Unicode encoded in UTF-8, are also acceptable.  Character sets that are
not strict supersets of seven-bit ASCII will not work.  We plan to add
complete support for international character sets in a future release.

Different systems use different conventions to indicate the end of a
line.  GCC accepts the ASCII control sequences @kbd{LF}, @kbd{@w{CR
LF}}, @kbd{CR}, and @kbd{@w{LF CR}} as end-of-line markers.  The first
three are the canonical sequences used by Unix, DOS and VMS, and the
classic Mac OS (before OSX) respectively.  You may therefore safely copy
source code written on any of those systems to a different one and use
it without conversion.  (GCC may lose track of the current line number
if a file doesn't consistently use one convention, as sometimes happens
when it is edited on computers with different conventions that share a
network file system.)  @kbd{@w{LF CR}} is included because it has been
reported as an end-of-line marker under exotic conditions.

If the last line of any input file lacks an end-of-line marker, the end
of the file is considered to implicitly supply one.  The C standard says
that this condition provokes undefined behavior, so GCC will emit a
warning message.

@item
@cindex trigraphs
If trigraphs are enabled, they are replaced by their corresponding
single characters.

These are nine three-character sequences, all starting with @samp{??},
that are defined by ISO C to stand for single characters.  They permit
obsolete systems that lack some of C's punctuation to use C.  For
example, @samp{??/} stands for @samp{\}, so @t{'??/n'} is a character
constant for a newline.  By default, GCC ignores trigraphs, but if you
request a strictly conforming mode with the @option{-std} option, then
it converts them.

Trigraphs are not popular and many compilers implement them incorrectly.
Portable code should not rely on trigraphs being either converted or
ignored.  If you use the @option{-Wall} or @option{-Wtrigraphs} options,
GCC will warn you when a trigraph would change the meaning of your
program if it were converted.

In a string constant, you can prevent a sequence of question marks from
being confused with a trigraph by inserting a backslash between the
question marks.  @t{"(??\?)"} is the string @samp{(???)}, not
@samp{(?]}.  Traditional C compilers do not recognize this idiom.

The nine trigraphs and their replacements are

@example
Trigraph:       ??(  ??)  ??<  ??>  ??=  ??/  ??'  ??!  ??-
Replacement:      [    ]    @{    @}    #    \    ^    |    ~
@end example

@item
@cindex continued lines
@cindex backslash-newline
Continued lines are merged into one long line.

A continued line is a line which ends with a backslash, @samp{\}.  The
backslash is removed and the following line is joined with the current
one.  No space is inserted, so you may split a line anywhere, even in
the middle of a word.  (It is generally more readable to split lines
only at white space.)

The trailing backslash on a continued line is commonly referred to as a
@dfn{backslash-newline}.

If there is white space between a backslash and the end of a line, that
is still a continued line.  However, as this is usually the result of an
editing mistake, and many compilers will not accept it as a continued
line, GCC will warn you about it.

@item
@cindex comments
@cindex line comments
@cindex block comments
All comments are replaced with single spaces.

There are two kinds of comments.  @dfn{Block comments} begin with
@samp{/*} and continue until the next @samp{*/}.  Block comments do not
nest:

@example
/* @r{this is} /* @r{one comment} */ @r{text outside comment}
@end example

@dfn{Line comments} begin with @samp{//} and continue to the end of the
current line.  Line comments do not nest either, but it does not matter,
because they would end in the same place anyway.

@example
// @r{this is} // @r{one comment}
@r{text outside comment}
@end example
@end enumerate

It is safe to put line comments inside block comments, or vice versa.

@example

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人一区二区三区| 久久青草欧美一区二区三区| 欧美群妇大交群中文字幕| 精品国产乱码久久久久久蜜臀 | 中文久久乱码一区二区| 伊人婷婷欧美激情| 国产精品一区二区你懂的| 欧美性受xxxx黑人xyx性爽| 国产午夜精品在线观看| 蜜臀a∨国产成人精品| 91官网在线免费观看| 欧美激情一区二区三区蜜桃视频| 日本伊人色综合网| 日本二三区不卡| 国产欧美日韩不卡| 久草这里只有精品视频| 日本精品视频一区二区三区| 国产人妖乱国产精品人妖| 激情文学综合网| 欧美一级免费大片| 首页国产欧美久久| 在线免费av一区| 一区二区三区在线观看欧美| 欧美日韩国产一二三| 日韩一区中文字幕| 大胆欧美人体老妇| 国产视频一区二区三区在线观看 | 玉足女爽爽91| 99精品视频中文字幕| 中文字幕免费一区| 成人伦理片在线| 中文字幕一区日韩精品欧美| 成人综合在线视频| 中文字幕制服丝袜一区二区三区| 国产大陆亚洲精品国产| 国产日韩欧美精品综合| 国产精品456| 国产精品美女久久久久av爽李琼| 国产不卡免费视频| 亚洲欧美自拍偷拍| 色美美综合视频| 亚洲成人你懂的| 欧美精品123区| 国产最新精品免费| 中文字幕va一区二区三区| 99热精品国产| 亚洲一区日韩精品中文字幕| 666欧美在线视频| 久久国产免费看| 国产精品免费网站在线观看| 99精品一区二区三区| 亚洲国产欧美在线| 精品欧美一区二区久久| 国产成人免费视频| 亚洲欧美日韩国产手机在线| 欧美精品在欧美一区二区少妇| 免费精品视频在线| 中文字幕av一区二区三区高| 91精品福利在线| 免费观看久久久4p| 一区视频在线播放| 91精品国产品国语在线不卡| 国产成人精品免费在线| 亚洲精品视频自拍| 精品国产乱码久久久久久久久| 丁香婷婷综合五月| 日韩va欧美va亚洲va久久| 国产亚洲短视频| 欧美性猛片xxxx免费看久爱| 国产在线观看一区二区| 亚洲免费观看高清完整版在线| 日韩视频一区二区| 91免费看`日韩一区二区| 蜜臀久久久99精品久久久久久| 国产亚洲精品中文字幕| 欧美日韩免费视频| 成人综合在线观看| 免费在线观看一区| 亚洲免费观看在线视频| 久久久99久久精品欧美| 欧美乱妇20p| 成人av在线影院| 麻豆精品在线视频| 亚洲伊人色欲综合网| 国产女主播一区| 欧美成人激情免费网| 欧洲视频一区二区| 丰满亚洲少妇av| 日本伊人色综合网| 亚洲国产日韩综合久久精品| 久久久久久久久久看片| 在线播放国产精品二区一二区四区 | 国产日韩欧美一区二区三区乱码 | 99综合电影在线视频| 久久91精品国产91久久小草| 一区二区视频免费在线观看| 日本一区二区三区在线观看| 日韩午夜av一区| 欧美老人xxxx18| 欧美特级限制片免费在线观看| 成人av综合在线| 丁香桃色午夜亚洲一区二区三区| 精品亚洲国产成人av制服丝袜| 日日摸夜夜添夜夜添国产精品 | 免费一区二区视频| 丝袜亚洲另类欧美综合| 一区二区欧美视频| 亚洲激情校园春色| 亚洲色图都市小说| 国产精品福利一区二区| 国产欧美日韩久久| 日本一区二区三区高清不卡| 26uuu亚洲| 26uuu精品一区二区三区四区在线| 日韩一区二区在线免费观看| 91精品国产综合久久婷婷香蕉| 欧美日韩不卡视频| 欧美精品久久久久久久多人混战 | 欧美肥妇毛茸茸| 51午夜精品国产| 日韩欧美中文字幕公布| 日韩三级免费观看| 国产亚洲1区2区3区| 国产午夜精品久久久久久免费视| 久久久精品国产99久久精品芒果| 国产亚洲1区2区3区| 国产精品电影一区二区三区| 亚洲免费视频中文字幕| 亚洲一区二区精品视频| 亚洲成人www| 久久精品av麻豆的观看方式| 国产一区日韩二区欧美三区| 国产成人自拍高清视频在线免费播放| 国产风韵犹存在线视精品| 99久久精品一区二区| 欧美午夜精品一区| 欧美电影免费观看完整版| 国产丝袜欧美中文另类| 一区二区三区四区蜜桃| 秋霞av亚洲一区二区三| 国产伦精品一区二区三区免费迷| 成人黄色a**站在线观看| 欧美亚洲一区三区| 精品播放一区二区| 亚洲欧美一区二区三区久本道91 | 久久久三级国产网站| 中文字幕国产精品一区二区| 中文字幕视频一区| 爽好多水快深点欧美视频| 国产精品18久久久久久久久久久久 | 波多野结衣欧美| 欧美区一区二区三区| 久久久精品欧美丰满| 亚洲国产中文字幕| 国产裸体歌舞团一区二区| 色综合一区二区| 精品人在线二区三区| 最新中文字幕一区二区三区| 青青草国产成人99久久| 成人美女视频在线看| 91精品国产综合久久精品| 中文字幕精品一区二区精品绿巨人| 亚洲综合区在线| 国产精品一区二区在线观看不卡| 欧美综合在线视频| 国产精品色一区二区三区| 美女诱惑一区二区| 欧美视频一区二区三区四区| 久久亚洲综合色| 日本不卡免费在线视频| 色婷婷综合视频在线观看| 久久精品视频在线看| 天天操天天色综合| 色八戒一区二区三区| 久久众筹精品私拍模特| 日韩av不卡在线观看| 色婷婷av一区二区三区软件 | 亚洲精品五月天| 成人性生交大片免费| 日韩精品一区二区在线观看| 亚洲综合在线第一页| 99精品欧美一区二区三区小说| 精品国产一区二区三区av性色| 天堂成人国产精品一区| 91官网在线免费观看| 亚洲男人的天堂一区二区| 成人免费视频网站在线观看| 精品国产sm最大网站| 免费观看在线综合色| 欧美一区二区三区啪啪| 亚洲一级在线观看| 91传媒视频在线播放| 亚洲色图在线播放| 色综合网站在线| 亚洲欧美日韩成人高清在线一区| 福利一区在线观看| 中文乱码免费一区二区| 成人av第一页| 亚洲三级在线看| 日本久久电影网|