Conventions.html 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
  4. <head>
  5. <title>The GNU C Preprocessor Internals: Conventions</title>
  6. <meta name="description" content="The GNU C Preprocessor Internals: Conventions">
  7. <meta name="keywords" content="The GNU C Preprocessor Internals: Conventions">
  8. <meta name="resource-type" content="document">
  9. <meta name="distribution" content="global">
  10. <meta name="Generator" content="makeinfo">
  11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  12. <link href="index.html#Top" rel="start" title="Top">
  13. <link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
  14. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  15. <link href="index.html#Top" rel="up" title="Top">
  16. <link href="Lexer.html#Lexer" rel="next" title="Lexer">
  17. <link href="index.html#Top" rel="prev" title="Top">
  18. <style type="text/css">
  19. <!--
  20. a.summary-letter {text-decoration: none}
  21. blockquote.smallquotation {font-size: smaller}
  22. div.display {margin-left: 3.2em}
  23. div.example {margin-left: 3.2em}
  24. div.indentedblock {margin-left: 3.2em}
  25. div.lisp {margin-left: 3.2em}
  26. div.smalldisplay {margin-left: 3.2em}
  27. div.smallexample {margin-left: 3.2em}
  28. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  29. div.smalllisp {margin-left: 3.2em}
  30. kbd {font-style:oblique}
  31. pre.display {font-family: inherit}
  32. pre.format {font-family: inherit}
  33. pre.menu-comment {font-family: serif}
  34. pre.menu-preformatted {font-family: serif}
  35. pre.smalldisplay {font-family: inherit; font-size: smaller}
  36. pre.smallexample {font-size: smaller}
  37. pre.smallformat {font-family: inherit; font-size: smaller}
  38. pre.smalllisp {font-size: smaller}
  39. span.nocodebreak {white-space:nowrap}
  40. span.nolinebreak {white-space:nowrap}
  41. span.roman {font-family:serif; font-weight:normal}
  42. span.sansserif {font-family:sans-serif; font-weight:normal}
  43. ul.no-bullet {list-style: none}
  44. -->
  45. </style>
  46. </head>
  47. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  48. <a name="Conventions"></a>
  49. <div class="header">
  50. <p>
  51. Next: <a href="Lexer.html#Lexer" accesskey="n" rel="next">Lexer</a>, Previous: <a href="index.html#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
  52. </div>
  53. <hr>
  54. <a name="Conventions-1"></a>
  55. <h2 class="unnumbered">Conventions</h2>
  56. <a name="index-interface"></a>
  57. <a name="index-header-files"></a>
  58. <p>cpplib has two interfaces&mdash;one is exposed internally only, and the
  59. other is for both internal and external use.
  60. </p>
  61. <p>The convention is that functions and types that are exposed to multiple
  62. files internally are prefixed with &lsquo;<samp>_cpp_</samp>&rsquo;, and are to be found in
  63. the file <samp>internal.h</samp>. Functions and types exposed to external
  64. clients are in <samp>cpplib.h</samp>, and prefixed with &lsquo;<samp>cpp_</samp>&rsquo;. For
  65. historical reasons this is no longer quite true, but we should strive to
  66. stick to it.
  67. </p>
  68. <p>We are striving to reduce the information exposed in <samp>cpplib.h</samp> to the
  69. bare minimum necessary, and then to keep it there. This makes clear
  70. exactly what external clients are entitled to assume, and allows us to
  71. change internals in the future without worrying whether library clients
  72. are perhaps relying on some kind of undocumented implementation-specific
  73. behavior.
  74. </p>
  75. </body>
  76. </html>