📄 diagnostics.html
字号:
<html lang="en">
<head>
<title>The C Preprocessor</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The C Preprocessor">
<meta name="generator" content="makeinfo 4.3">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">
<!--
Copyright © 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
<p>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
section entitled "GNU Free Documentation License".
<p>This manual contains no Invariant Sections. The Front-Cover Texts are
(a) (see below), and the Back-Cover Texts are (b) (see below).
<p>(a) The FSF's Front-Cover Text is:
<p>A GNU Manual
<p>(b) The FSF's Back-Cover Text is:
<p>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.
-->
</head>
<body>
<div class="node">
<p>
Node:<a name="Diagnostics">Diagnostics</a>,
Next:<a rel="next" accesskey="n" href="Line-Control.html#Line%20Control">Line Control</a>,
Previous:<a rel="previous" accesskey="p" href="Conditionals.html#Conditionals">Conditionals</a>,
Up:<a rel="up" accesskey="u" href="index.html#Top">Top</a>
<hr><br>
</div>
<h2 class="chapter">Diagnostics</h2>
<p>The directive <code>#error</code> causes the preprocessor to report a fatal
error. The tokens forming the rest of the line following <code>#error</code>
are used as the error message.
<p>You would use <code>#error</code> inside of a conditional that detects a
combination of parameters which you know the program does not properly
support. For example, if you know that the program will not run
properly on a VAX, you might write
<pre class="example"> #ifdef __vax__
#error "Won't work on VAXen. See comments at get_last_object."
#endif
</pre>
<p>If you have several configuration parameters that must be set up by
the installation in a consistent way, you can use conditionals to detect
an inconsistency and report it with <code>#error</code>. For example,
<pre class="example"> #if !defined(UNALIGNED_INT_ASM_OP) && defined(DWARF2_DEBUGGING_INFO)
#error "DWARF2_DEBUGGING_INFO requires UNALIGNED_INT_ASM_OP."
#endif
</pre>
<p>The directive <code>#warning</code> is like <code>#error</code>, but causes the
preprocessor to issue a warning and continue preprocessing. The tokens
following <code>#warning</code> are used as the warning message.
<p>You might use <code>#warning</code> in obsolete header files, with a message
directing the user to the header file which should be used instead.
<p>Neither <code>#error</code> nor <code>#warning</code> macro-expands its argument.
Internal whitespace sequences are each replaced with a single space.
The line must consist of complete tokens. It is wisest to make the
argument of these directives be a single string constant; this avoids
problems with apostrophes and the like.
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -