1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Numeric Types</TITLE>
<META NAME="description" CONTENT="Numeric Types">
<META NAME="keywords" CONTENT="users_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="users_guide.css">
<LINK REL="next" HREF="node56.html">
<LINK REL="previous" HREF="node54.html">
<LINK REL="up" HREF="node54.html">
<LINK REL="next" HREF="node56.html">
</HEAD>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html1444"
HREF="node56.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1438"
HREF="node54.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1432"
HREF="node54.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1440"
HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<A NAME="tex2html1442"
HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1445"
HREF="node56.html">Strings</A>
<B> Up:</B> <A NAME="tex2html1439"
HREF="node54.html">Fundamental Types</A>
<B> Previous:</B> <A NAME="tex2html1433"
HREF="node54.html">Fundamental Types</A>
<B> <A NAME="tex2html1441"
HREF="node14.html">Contents</A></B>
<B> <A NAME="tex2html1443"
HREF="node317.html">Index</A></B>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION02431000000000000000"></A><A NAME="ssec:basics:fundamental:numbers"></A><A NAME="2151"></A><A NAME="2152"></A>
<BR>
Numeric Types
</H2>
<P>
The SIDL types <TT><I CLASS="slanted">bool</I></TT>, <TT><I CLASS="slanted">char</I></TT>, <TT><I CLASS="slanted">int</I></TT>,
<TT><I CLASS="slanted">long</I></TT>, <TT><I CLASS="slanted">float</I></TT>, <TT><I CLASS="slanted">double</I></TT>, <TT><I CLASS="slanted">fcomplex</I></TT>,
and <TT><I CLASS="slanted">dcomplex</I></TT> are the smallest and easiest data
types to transfer between languages transparently.
They all have a fixed size and can just as
reasonably be copied as passed by reference.
<P>
Most languages natively support all of these data types
(though perhaps less so with complex types). There are
a few notable exceptions that may be of interest.
<P>
ANSI C does not define the size of
<TT>int</TT> and <TT>long</TT>, only that the latter be at least
as big as the former. As of the C99 standard, there
are types <TT>int32_t</TT> and <TT>int64_t</TT> that
are signed integers that explicitly support a fixed number of bits.
Most compilers already have these symbols defined appropriately
in <TT>sys/types.h</TT> (pre C99 standard) or <TT>inttypes.h</TT>.
<P>
Python defines its <TT>int</TT> and <TT>long</TT> to be equivalent
to C, and therefore suffers the same platform dependent
integer size problem with less flexibility for a workaround.
It is not uncommon for regression tests involving longs and
Python to fail on certain platforms. Python 2.2 has a patch to make
SIDL long support better.
<P>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html1444"
HREF="node56.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1438"
HREF="node54.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1432"
HREF="node54.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1440"
HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<A NAME="tex2html1442"
HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1445"
HREF="node56.html">Strings</A>
<B> Up:</B> <A NAME="tex2html1439"
HREF="node54.html">Fundamental Types</A>
<B> Previous:</B> <A NAME="tex2html1433"
HREF="node54.html">Fundamental Types</A>
<B> <A NAME="tex2html1441"
HREF="node14.html">Contents</A></B>
<B> <A NAME="tex2html1443"
HREF="node317.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<ADDRESS>
<br><br>babel-0.10.2<br>users_guide Last Modified 2005-03-23<br><br><a href="http://www.llnl.gov/CASC/components">http://www.llnl.gov/CASC/components</a><br><a href="mailto:components@llnl.gov">components@llnl.gov</a>
</ADDRESS>
</BODY>
</HTML>
|