<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Integers plattformübergreifend]]></title><description><![CDATA[<p>Wie greife ich plattformübergreifend auf signed und unsigned int 8-bit bis 64-bit zu? Beispielsweise scheint es nur unter Win möglich zu sein folgendes zu definieren:</p>
<pre><code class="language-cpp">typedef unsigned __int64 uint64_t;
</code></pre>
<p>Hingegen kann man bei folgender Implementierung nicht sicher sein, dass es auch wirklich 8-bit sind:</p>
<pre><code class="language-cpp">typedef unsigned char uint8_t;
</code></pre>
<p>Wie sieht es mit &lt;inttypes.h&gt; aus ? wäre das eine plattformübergreifende Lösung:</p>
<pre><code class="language-cpp">#ifndef TYPES_H_
#define TYPES_H_

#ifdef _MSC_VER

// Signed integers
typedef __int8 int8_t;
typedef __int16 int16_t;
typedef __int32 int32_t;
typedef __int64 int64_t;

// Unsigned integers
typedef unsigned __int8 uint8_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int64 uint64_t;

#else

#include &lt;inttypes.h&gt;

#endif  // _MSC_VER

#endif  // TYPES_H_
</code></pre>
<p>Wenn möglich möchte ich erstmal keine Implementierung von Boost verwenden, falls es eine geben sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/282501/integers-plattformübergreifend</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 02:47:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282501.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Feb 2011 13:31:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Integers plattformübergreifend on Mon, 21 Feb 2011 13:34:48 GMT]]></title><description><![CDATA[<p>Wie greife ich plattformübergreifend auf signed und unsigned int 8-bit bis 64-bit zu? Beispielsweise scheint es nur unter Win möglich zu sein folgendes zu definieren:</p>
<pre><code class="language-cpp">typedef unsigned __int64 uint64_t;
</code></pre>
<p>Hingegen kann man bei folgender Implementierung nicht sicher sein, dass es auch wirklich 8-bit sind:</p>
<pre><code class="language-cpp">typedef unsigned char uint8_t;
</code></pre>
<p>Wie sieht es mit &lt;inttypes.h&gt; aus ? wäre das eine plattformübergreifende Lösung:</p>
<pre><code class="language-cpp">#ifndef TYPES_H_
#define TYPES_H_

#ifdef _MSC_VER

// Signed integers
typedef __int8 int8_t;
typedef __int16 int16_t;
typedef __int32 int32_t;
typedef __int64 int64_t;

// Unsigned integers
typedef unsigned __int8 uint8_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int64 uint64_t;

#else

#include &lt;inttypes.h&gt;

#endif  // _MSC_VER

#endif  // TYPES_H_
</code></pre>
<p>Wenn möglich möchte ich erstmal keine Implementierung von Boost verwenden, falls es eine geben sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024146</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Mon, 21 Feb 2011 13:34:48 GMT</pubDate></item><item><title><![CDATA[Reply to Integers plattformübergreifend on Mon, 21 Feb 2011 13:56:31 GMT]]></title><description><![CDATA[<p>Tomahawk schrieb:</p>
<blockquote>
<p>Hingegen kann man bei folgender Implementierung nicht sicher sein, dass es auch wirklich 8-bit sind:</p>
<pre><code class="language-cpp">typedef unsigned char uint8_t;
</code></pre>
</blockquote>
<p>Das sind bloß mindestens 8 Bit.</p>
<blockquote>
<p>Wie sieht es mit &lt;inttypes.h&gt; aus ? wäre das eine plattformübergreifende Lösung:</p>
</blockquote>
<p>inttypes.h und stdint.h sind C99, die müssen nicht garantiert auf jeder Plattform vorhanden sein. Wenn sie da sind, sind sie eine gute Lösung.</p>
<blockquote>
<pre><code class="language-cpp">#ifndef TYPES_H_
#define TYPES_H_

#ifdef _MSC_VER

// Signed integers
typedef __int8 int8_t;
typedef __int16 int16_t;
typedef __int32 int32_t;
typedef __int64 int64_t;

// Unsigned integers
typedef unsigned __int8 uint8_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int64 uint64_t;

#else

#include &lt;inttypes.h&gt;

#endif  // _MSC_VER

#endif  // TYPES_H_
</code></pre>
</blockquote>
<p>Das ist im Prinzip kein schlechter Ansatz. Du müsstest für jede Plattform alle wichtigen Makrodefinitionen raussuchen und dir die entsprechenden Typedefs ausdenken. Das wäre dann auf alle diese Plattformen portabel. Aber eine Menge Arbeit für dich.</p>
<blockquote>
<p>Wenn möglich möchte ich erstmal keine Implementierung von Boost verwenden, falls es eine geben sollte.</p>
</blockquote>
<p>Und dies würde dir diese Arbeit abnehmen (denn ja, das gibt es von boost). Wenn du so masochistisch veranlagt bist und du das aus Prinzip alles selber machen willst, ist das nicht mein Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024159</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 21 Feb 2011 13:56:31 GMT</pubDate></item><item><title><![CDATA[Reply to Integers plattformübergreifend on Mon, 21 Feb 2011 14:05:39 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Und dies würde dir diese Arbeit abnehmen (denn ja, das gibt es von boost). Wenn du so masochistisch veranlagt bist und du das aus Prinzip alles selber machen willst, ist das nicht mein Problem.</p>
</blockquote>
<p>Nein es weniger Mascochismus als meine Dummheit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Habe es nicht fertig bekommen die Boost-Libraries unter Cygwin zu kompilieren. Bin schon froh, Cygwin und Eclipse zum laufen bekommen zu haben. Aber natürlich muss ich bei &lt;boost/cstdint.hpp&gt; sicher nichts compilieren, verschaffe mir aber weitere Anhängigkeiten, die ich nicht möchte.</p>
<p>Gruss und danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024171</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Mon, 21 Feb 2011 14:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to Integers plattformübergreifend on Mon, 21 Feb 2011 14:12:31 GMT]]></title><description><![CDATA[<p>Fast alles von Boost ist Header-only. Die Sachen die man compilieren muss, kann man an zwei Händen abzählen und sind allesamt optional.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024183</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 21 Feb 2011 14:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to Integers plattformübergreifend on Mon, 21 Feb 2011 15:52:13 GMT]]></title><description><![CDATA[<p>Wenn man nicht alles aus boost haben will, kann man sich mit bcp auch den benötigten Teil extrahieren. Ich habe allerdings keine Ahnung, was bei <code>cstdint</code> noch an Zeugs mit angezogen wird. Am Besten: Ausprobieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024264</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 21 Feb 2011 15:52:13 GMT</pubDate></item></channel></rss>