/trunk/Examples/go/constants/index.html
HTML | 55 lines | 44 code | 11 blank | 0 comment | 0 complexity | e4fa21572e2b31b67e2d9d848fb07d69 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- <html>
- <head>
- <title>SWIG:Examples:go:constants</title>
- </head>
- <body bgcolor="#ffffff">
- <tt>SWIG/Examples/go/constants/</tt>
- <hr>
- <H2>Wrapping C Constants</H2>
- <p>
- When SWIG encounters C preprocessor macros and C declarations that
- look like constants, it creates a Go constant with an identical value.
- Click <a href="example.i">here</a> to see a SWIG interface with some
- constant declarations in it.
- <h2>Accessing Constants from Go</h2>
- Click <a href="../../../Doc/Manual/Go.html#go_constants">here</a> for
- the section on constants in the SWIG and Go documentation.
- <p>
- Click <a href="runme.go">here</a> to see a Go program that prints out
- the values of the constants contained in the above file.</p>
- <h2>Key points</h2>
- <ul>
- <li>All names are capitalized to make them visible.
- <li>The values of preprocessor macros are converted into Go constants.
- <li>C string literals such as "Hello World" are converted into Go strings.
- <li>Macros that are not fully defined are simply ignored. For example:
- <blockquote>
- <pre>
- #define EXTERN extern
- </pre>
- </blockquote>
- is ignored because SWIG has no idea what type of variable this would be.
- <p>
- <li>Expressions are allowed provided that all of their components are
- defined. Otherwise, the constant is ignored.
- <li>Certain C declarations involving 'const' are also turned into Go
- constants.
- <li>The constants that appear in a SWIG interface file do not have to
- appear in any sort of matching C source file since the creation of a
- constant does not require linkage to a stored value (i.e., a value
- held in a C global variable or memory location).
- </ul>
- <hr>
- </body>
- </html>