source: public/doc/gnu-c/Preproc-Overview.html@ 02598c2

Last change on this file since 02598c2 was 02598c2, checked in by Mikhail Kirillov <w96k@…>, on Oct 6, 2022 at 12:36:29 PM

Add gnu-c

  • Property mode set to 100644
File size: 4.3 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<!-- Copyright (C) 2022 Richard Stallman and Free Software Foundation, Inc.
4
5(The work of Trevis Rothwell and Nelson Beebe has been assigned or
6licensed to the FSF.)
7
8Permission is granted to copy, distribute and/or modify this document
9under the terms of the GNU Free Documentation License, Version 1.3 or
10any later version published by the Free Software Foundation; with the
11Invariant Sections being "GNU General Public License," with the
12Front-Cover Texts being "A GNU Manual," and with the Back-Cover
13Texts as in (a) below. A copy of the license is included in the
14section entitled "GNU Free Documentation License."
15
16(a) The FSF's Back-Cover Text is: "You have the freedom to copy and
17modify this GNU manual. Buying copies from the FSF supports it in
18developing GNU and promoting software freedom." -->
19<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
20<head>
21<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
22<title>Preproc Overview (GNU C Language Manual)</title>
23
24<meta name="description" content="Preproc Overview (GNU C Language Manual)">
25<meta name="keywords" content="Preproc Overview (GNU C Language Manual)">
26<meta name="resource-type" content="document">
27<meta name="distribution" content="global">
28<meta name="Generator" content="makeinfo">
29<link href="index.html" rel="start" title="Top">
30<link href="Symbol-Index.html" rel="index" title="Symbol Index">
31<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
32<link href="Preprocessing.html" rel="up" title="Preprocessing">
33<link href="Directives.html" rel="next" title="Directives">
34<link href="Preprocessing.html" rel="prev" title="Preprocessing">
35<style type="text/css">
36<!--
37a.summary-letter {text-decoration: none}
38blockquote.indentedblock {margin-right: 0em}
39div.display {margin-left: 3.2em}
40div.example {margin-left: 3.2em}
41div.lisp {margin-left: 3.2em}
42kbd {font-style: oblique}
43pre.display {font-family: inherit}
44pre.format {font-family: inherit}
45pre.menu-comment {font-family: serif}
46pre.menu-preformatted {font-family: serif}
47span.nolinebreak {white-space: nowrap}
48span.roman {font-family: initial; font-weight: normal}
49span.sansserif {font-family: sans-serif; font-weight: normal}
50ul.no-bullet {list-style: none}
51-->
52</style>
53
54
55</head>
56
57<body lang="en">
58<span id="Preproc-Overview"></span><div class="header">
59<p>
60Next: <a href="Directives.html" accesskey="n" rel="next">Directives</a>, Up: <a href="Preprocessing.html" accesskey="u" rel="up">Preprocessing</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Symbol-Index.html" title="Index" rel="index">Index</a>]</p>
61</div>
62<hr>
63<span id="Preprocessing-Overview"></span><h3 class="section">26.1 Preprocessing Overview</h3>
64
65<p>GNU C performs preprocessing on each line of a C program as the first
66stage of compilation. Preprocessing operates on a line only when it
67contains a <em>preprocessing directive</em> or uses a <em>macro</em>&mdash;all
68other lines pass through preprocessing unchanged.
69</p>
70<p>Here are some jobs that preprocessing does. The rest of
71this chapter gives the details.
72</p>
73<ul>
74<li> Inclusion of header files. These are files (usually containing
75declarations and macro definitions) that can be substituted into your
76program.
77
78</li><li> Macro expansion. You can define <em>macros</em>, which are abbreviations
79for arbitrary fragments of C code. Preprocessing replaces the macros
80with their definitions. Some macros are automatically predefined.
81
82</li><li> Conditional compilation. You can include or exclude parts of the
83program according to various conditions.
84
85</li><li> Line control. If you use a program to combine or rearrange source files
86into an intermediate file that is then compiled, you can use line
87control to inform the compiler where each source line originally came
88from.
89
90</li><li> Compilation control. <code>#pragma</code> and <code>_Pragma</code> invoke
91some special compiler features in how to handle certain constructs.
92
93</li><li> Diagnostics. You can detect problems at compile time and issue errors
94or warnings.
95</li></ul>
96
97<p>Except for expansion of predefined macros, all these operations happen
98only if you use preprocessing directives to request them.
99</p>
100
101
102
103</body>
104</html>
Note: See TracBrowser for help on using the repository browser.