cpp.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Fri, 13 Jul 2012 22:32:19 +0300
changeset 1334 9bf0d5a1f0cf
parent 1105 f50956d9293a
child 1344 4a4dabb9f8e4
permissions -rw-r--r--
Include common header with quick links.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1086
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
.. -*- coding: utf-8; -*-
1334
9bf0d5a1f0cf Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1105
diff changeset
     2
.. include:: HEADER.rst
1086
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
=======================
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
 cpp (C preprocessor).
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
=======================
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
How to see macros expansion?
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
============================
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
GCC::
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
  $ cpp <file>.c
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
MSVC::
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
  $ cl /E <file>.c
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
Who to see predefined macros?
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
=============================
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
See:
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
  http://predef.sourceforge.net/
1105
f50956d9293a Fix RST syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1087
diff changeset
    25
                ``predef`` project on Sourceforge
1086
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
  http://en.wikipedia.org/wiki/C_preprocessor#Compiler-specific_predefined_macros
1105
f50956d9293a Fix RST syntax.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1087
diff changeset
    27
                Compiler specific predefined macros
1087
e1b19e1e7031 Add info about _MSC_VER
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1086
diff changeset
    28
  http://msdn.microsoft.com/en-us/library/b0084kay.aspx
e1b19e1e7031 Add info about _MSC_VER
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1086
diff changeset
    29
                Predefined Macros
1086
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
GNU C Compiler::
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
  $ gcc -dM -E - < /dev/null
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
HP-UX ansi C compiler::
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
  $ cc -v EMPTY.c
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
SCO OpenServer C compiler::
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
  $ cc -## EMPTY.c
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
Sun Studio C/C++ compiler::
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
  $ cc -## EMPTY.c
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
IBM AIX XL C/C++ compiler::
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
  $ cc -qshowmacros -E EMPTY.c
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
For Visual Studio compiler there no any possibility get predefined macros from
1087
e1b19e1e7031 Add info about _MSC_VER
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1086
diff changeset
    52
command line... But some macros documented:
1086
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
1087
e1b19e1e7031 Add info about _MSC_VER
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1086
diff changeset
    54
  _MSC_VER
e1b19e1e7031 Add info about _MSC_VER
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1086
diff changeset
    55
                Defines the compiler version. Always defined.
e1b19e1e7031 Add info about _MSC_VER
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1086
diff changeset
    56
  _WIN32
e1b19e1e7031 Add info about _MSC_VER
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1086
diff changeset
    57
                Defined for applications for Win32. Always defined.
1086
66ecbe32a2af simplify text.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
1087
e1b19e1e7031 Add info about _MSC_VER
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1086
diff changeset
    59