0179-0180.html

来自「linux-unix130.linux.and.unix.ebooks130 l」· HTML 代码 · 共 296 行

HTML
296
字号
<HTML>



<HEAD>

<TITLE>Linux Complete Command Reference:User Commands:EarthWeb Inc.-</TITLE>

</HEAD>

<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<SCRIPT>
<!--
function displayWindow(url, width, height) {
        var Win = window.open(url,"displayWindow",'width=' + width +
',height=' + height + ',resizable=1,scrollbars=yes');
}
//-->
</SCRIPT>
</HEAD>

 -->




<!-- ISBN=0672311046 //-->

<!-- TITLE=Linux Complete Command Reference//-->

<!-- AUTHOR=Red Hat//-->

<!-- PUBLISHER=Macmillan Computer Publishing//-->

<!-- IMPRINT=Sams//-->

<!-- CHAPTER=01 //-->

<!-- PAGES=0001-0736 //-->

<!-- UNASSIGNED1 //-->

<!-- UNASSIGNED2 //-->



<P><CENTER>

<a href="0176-0178.html">Previous</A> | <a href="../ewtoc.html">Table of Contents</A> | <a href="0181-0182.html">Next</A></CENTER></P>







<A NAME="PAGENUM-179"><P>Page 179</P></A>





<TABLE>



<TR><TD>

</TD><TD>

The preprocessor predefines a macro

__STRICT_ANSI__ when you use the _ansi option.

Some header files may notice this macro and refrain from declaring certain functions or

defining certain macros that the ANSI standard doesn't call for; this is to avoid interfering with

any programs that might use these names for other things.

</TD></TR><TR><TD>

_fno_asm

</TD><TD>

Do not recognize asm, inline, or

typeof as a keyword. These words may then be used

as identifiers. You can use __asm__, __inline__, and

__typeof__ instead. _ansi implies _fno_asm.

</TD></TR><TR><TD>

_fno_builtin

</TD><TD>

Don't recognize built-in functions that do not begin with two leading underscores.

Currently, the functions affected include _exit,

abort, abs, alloca, cos, exit, fabs, labs, memcmp,

memcpy, sin, sqrt, strcmp, strcpy,and strlen.

The _ansi option prevents alloca and _exit from being built-in functions.

</TD></TR><TR><TD>

_fno_strict_prototype

</TD><TD>

Treat a function declaration with no arguments, such as

int foo();, as C would treat it&#151;as saying nothing about the number of arguments or their types (C++ only). Normally, such

a declaration in C++ means that the function foo takes no arguments.

</TD></TR><TR><TD>

_trigraphs

</TD><TD>

Support ANSI C trigraphs. The

_ansi option implies _trigraphs.

</TD></TR><TR><TD>

_traditional

</TD><TD>

Attempt to support some aspects of traditional C compilers. For details, see the

GNU C Manual; the duplicate list here has been deleted so that we won't get complaints when it is

out of date.

  But one note about C++ programs only (not C).

_traditional has one additional effect for C++: assignment to this is permitted. This is the same as the effect of

_fthis_is_variable.

</TD></TR><TR><TD>

_traditional_cpp

</TD><TD>

 Attempt to support some aspects of traditional C preprocessors. This includes the items

that specifically mention the preprocessor previously, but none of the other effects of

_traditional.

</TD></TR><TR><TD>

_fdollars_in_identifiers

</TD><TD>

Permit the use of

$ in identifiers (C++ only). You can also use

_fno_dollars_in_identifiers to explicitly prohibit use of

$. (GNU C++ allows $ by default on some target systems but

not others.)

</TD></TR><TR><TD>

_fenum_int_equiv

</TD><TD>

Permit implicit conversion of

int to enumeration types (C++ only). Normally GNU

C++ allows conversion of enum to int, but not the other way around.

</TD></TR><TR><TD>

fexternal_templates

</TD><TD>

Produce smaller code for template declarations, by generating only a single copy of

each template function where it is defined (C++ only). To use this option successfully, you must

also mark all files that use templates with either

#pragma implementation (the definition) or #pragma

interface (declarations).

     When your code is compiled with

_fexternal_templates, all template instantiations are

external. You must arrange for all necessary instantiations to appear in the implementation file; you

can do this with a typedef that references each instantiation needed. Conversely, when you

compile using the default option

_fno_external_templates, all template instantiations are

explicitly internal.

</TD></TR><TR><TD>

_fall_virtual

</TD><TD>

Treat all possible member functions as virtual, implicitly. All member functions (except

for constructor functions and new or delete member operators) are treated as virtual functions

of the class where they appear. This does not mean that all calls to these member functions will

be made through the internal table of virtual functions. Under some circumstances, the

compiler can determine that a call to a given virtual function can be made directly; in these cases,

the calls are direct in any case.

</TD></TR><TR><TD>

_fcond_mismatch

</TD><TD>

Allow conditional expressions with mismatched types in the second and third arguments.

The value of such an expression is void.

</TD></TR><TR><TD>

_fthis_is_variable

</TD><TD>

Permit assignment to

this (C++ only). The incorporation of user-defined free store

management into C++ has made assignment to this an anachronism. Therefore, by default it is

invalid to assign to this within a class member function. However, for backwards compatibility,

you can make it valid with _fthis-is-variable.

</TD></TR><TR><TD>

_funsigned_char

</TD><TD>

Let the type char be unsigned, like unsigned

char.

 Each kind of machine has a default for what

char should be. It is either like unsigned char by default or like

signed char by default.

</TD></TR></TABLE>





<A NAME="PAGENUM-180"><P>Page 180</P></A>





<TABLE>



<TR><TD>

</TD><TD>

Ideally, a portable program should always use

signed char or unsigned char when it depends on the signedness of an object. But many programs have been written to use plain

char and expect it to be signed, or expect it to be unsigned, depending on the machines they were written

for. This option, and its inverse, lets you make such a program work with the opposite default.

     The type char is always a distinct type from each of

signed char and unsigned char, even though its behavior is always just like one of those two.

</TD></TR><TR><TD>

_fsigned_char

</TD><TD>

Let the type char be signed, like

signed char.

     Note that this is equivalent to

_fno_unsigned_char, which is the negative form of

_funsigned_char. Likewise, _fno_signed_char is equivalent to

_funsigned_char.

</TD></TR><TR><TD>

_fsigned_bitfields

</TD><TD>

These options control whether a bitfield is signed or unsigned, when declared with no explicit

</TD></TR><TR><TD>

_funsigned_bitfields

</TD><TD>

or unsigned qualifier.

</TD></TR><TR><TD>

_fno_signed_bitfields

</TD><TD>

By default, such a bitfield is signed, because this is consistent: The basic integer types such

as int

</TD></TR><TR><TD>

_fno_unsigned_bitfields

</TD><TD>

signed are signed types.

 However, when you specify _traditional, bitfields are all unsigned no matter what.

</TD></TR><TR><TD>

_fwritable_strings

</TD><TD>

Store string constants in the writable data segment and don't uniquize them. This is

for compatibility with old programs which assume they can write into string constants.

_traditional also has this effect.

 Writing into string constants is a very bad idea; constants should be constant.

</TD></TR></TABLE>





<P><B>

PREPORCESSOR OPTIONS

</B>

</P>



<P>These options control the C preprocessor, which is run on each C source file before actual compilation.

</P>

<P>If you use the _E option, gcc does nothing except preprocessing. Some of these options make sense only together with

_E because they cause the preprocessor output to be unsuitable for actual compilation.

</P>



<TABLE>



<TR><TD>

_include file

</TD><TD>

Process file as input before processing the regular input file. In effect, the contents of

file

are compiled first. Any _D and _U options on the command line are always processed before <BR>

_include file, regardless of the order in which they are written. All the

_include and _imacros options are processed in the order in which they are written.

</TD></TR><TR><TD>

_imacros file

</TD><TD>

Process file as input, discarding the resulting output, before processing the regular input

file. Because the output generated from file is discarded, the only effect of

_imacros file is to make the macros defined in

file available for use in the main input. The preprocessor evaluates any <BR>

_D and _U options on the command line before processing

_imacros file, regardless of the order in which they are written. All the

_include and _imacros options are processed in the order

in which they are written.

</TD></TR><TR><TD>

_idirafter dir

</TD><TD>

Add the directory dir to the second

include path. The directories on the second

include path are searched when a header file is not found in any of the directories in the main

include path (the one that _I adds to).

</TD></TR><TR><TD>

_iprefix prefix

</TD><TD>

Specify prefix as the prefix for subsequent

_iwithprefix options.

</TD></TR><TR><TD>

_iwithprefix dir

</TD><TD>

Add a directory to the second

include path. The directory's name is made by

concatenating prefix and dir, where prefix was specified previously with

_iprefix.

</TD></TR><TR><TD>

_nostdinc

</TD><TD>

Do not search the standard system directories for header files. Only the directories you

have specified with _I options (and the current directory, if appropriate) are searched.

     By using both _nostdinc and _I_, you can limit the include file search file to only

those directories you specify explicitly.

</TD></TR><TR><TD>

_nostdinc++

</TD><TD>

Do not search for header files in the C++_specific standard directories, but do still search

the other standard directories. (This option is used when building

libg++.)

</TD></TR><TR><TD>

_undef

</TD><TD>

Do not predefine any nonstandard macros (including architecture flags).

</TD></TR><TR><TD>

_E

</TD><TD>

Run only the C preprocessor. Preprocess all the C source files specified and output the results

to standard output or to the specified output file.

</TD></TR><TR><TD>

_C

</TD><TD>

Tell the preprocessor not to discard comments. Used with the

_E option.

</TD></TR></TABLE>









<P><CENTER>

<a href="0176-0178.html">Previous</A> | <a href="../ewtoc.html">Table of Contents</A> | <a href="0181-0182.html">Next</A></CENTER></P>







</td>
</tr>
</table>

<!-- begin footer information -->







</body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?