<?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[int oder INT]]></title><description><![CDATA[<p>hallo<br />
kommen alle compiler mit INT (ja grossbuchstaben) klar oder nur die<br />
windofs-compiler? in meinen büchern hab ich immer nur 'int' gesehen.</p>
<p>mfg f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/116738/int-oder-int</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 19:32:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/116738.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 30 Jul 2005 06:58:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 06:58:16 GMT]]></title><description><![CDATA[<p>hallo<br />
kommen alle compiler mit INT (ja grossbuchstaben) klar oder nur die<br />
windofs-compiler? in meinen büchern hab ich immer nur 'int' gesehen.</p>
<p>mfg f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/841984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/841984</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sat, 30 Jul 2005 06:58:16 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 07:04:54 GMT]]></title><description><![CDATA[<p>Darf normalerweise nicht gehen, auch net unter Windows. Eventuell mach die Winapi ein typedef oder define (wie bei BOOL).</p>
<p>Guckst du windef.h da steht das alles drin...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/841986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/841986</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Sat, 30 Jul 2005 07:04:54 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 08:21:46 GMT]]></title><description><![CDATA[<p>Was heißt es darf nicht gehen? Es ist halt einfach ein selbst definierter Typ, machen wir hier schliesslich alle tag täglich. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Schau einfach mal wo INT definiert ist, und das kannst du auch in jedem anderen Compiler übernehmen, wenn es dort fehlt. Die WinAPI macht schliesslich kein Voodoo. <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/841999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/841999</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sat, 30 Jul 2005 08:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 10:00:00 GMT]]></title><description><![CDATA[<p>Ich meinte es darf nicht gehen ohne das der Typ definiert ist weil da c/c++ genau unterscheidet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842047</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Sat, 30 Jul 2005 10:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 10:31:04 GMT]]></title><description><![CDATA[<p>hallo<br />
also ich bin für int(klein).<br />
bin in einem tutorial drüber gestolpert, wo in einem beispiel viele fehler<br />
gemeldet wurden, sich der compiler sich aber nicht über INT und LONG<br />
beschwerte.<br />
ist in dem beispiel nicht selbstdefiniert, denke aber, dass der ursprung<br />
in billy's softwareschmiede liegt wegen WORD und DWORD. sucht dies mal<br />
in eueren c oder c++ büchern. die meisten windofs-compiler mögens.</p>
<p>ich hab auch schon header-files modifiziert. aber in einem tutorial wie<br />
stehts da mit mit dem lernerfolg, wenn der z.b. erste quelltext den<br />
compiler als begrüssung schon mit einer umfangreichen fehlermeldung beglückt.<br />
na gut eventuell packt mich dann der ergeiz und ich versuch die fehlerliste<br />
zu schreddern. <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="😉"
    /><br />
aber müssen bei standarttutorials so umfangreiche fehlermeldungen sein?<br />
okay bei sonderlösungen kann man's akzeptieren, wenn dies den code extrem<br />
übersichtlicher macht. dann sollte aber auch der compiler genannt werden.</p>
<p>mfg f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842065</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sat, 30 Jul 2005 10:31:04 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 10:35:13 GMT]]></title><description><![CDATA[<p>nachtrag<br />
frage wegen einiger antworten: dies ist doch ein allgemeines c/c++ forum<br />
oder ein windows- c/c++ forum? <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="😉"
    /></p>
<p>mfg f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842067</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sat, 30 Jul 2005 10:35:13 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 10:42:30 GMT]]></title><description><![CDATA[<p>Also erstmal, das was die Microsofties mit INT, DWORD usw. gemacht haben ist richtig und sogar gut! Sich darüber herab lassend zu äußern ist also fehl am Platz. Denn mit den INT, WORD, DWORD usw. bessert man den fehlenden Standard in C++ aus, das die bit-Größe von int, long usw. nicht definiert ist. D.h. auf einem 64-Bit-System ist INT genauso groß wie auf einem 32-Bit-System. Wenn der Source also mal unter einem anderen System compiliert wird, wo sich die Typen in der Größe ändern, muß man nur einmal kurz die typedefs ändern, und gut ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Anstatt das du überall das INT durch ein int ersetzt, solltest du vielleicht lieber einmal ein</p>
<pre><code class="language-cpp">typedef int INT;
</code></pre>
<p>schreiben, wenn es bei dir fehlt.</p>
<p>Recht hast du aber, das ein Tutorial für C++ schon mit den eingebauten Typen arbeiten sollte. Ein Anfänger kann das schlecht wissen.</p>
<p>FireFlow  schrieb:</p>
<blockquote>
<p>Ich meinte es darf nicht gehen ohne das der Typ definiert ist weil da c/c++ genau unterscheidet.</p>
</blockquote>
<p>OK, du meinstest die Groß-Kleinschreibung wird unterschieden? Das stimmt natürlich. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/842068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842068</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sat, 30 Jul 2005 10:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 10:44:25 GMT]]></title><description><![CDATA[<p>Das INT typedef wird aber sehr sehr selten genutzt in der WinAPI. Die anderen die du genannt hast werden aber häufig eingesetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842070</guid><dc:creator><![CDATA[b]]></dc:creator><pubDate>Sat, 30 Jul 2005 10:44:25 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 11:01:16 GMT]]></title><description><![CDATA[<p>hallo<br />
also die meisten c/c++ compiler die für windows geschrieben wurden sollten<br />
dies ohne typedef können.<br />
ich hab jetzt nicht nachgesehen wo's unter win32 steht aber bei win16 stand<br />
die beschreibung in den windows-help-files und nicht in den compiler- spezifischen.<br />
ich könnt mir aber vorstellen bei einem grösseren projekt INT und int<br />
und je nach compiler oder typdef unterschiedlich definiert, da kommt freude<br />
auf. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> oder wie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842079</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sat, 30 Jul 2005 11:01:16 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 11:19:03 GMT]]></title><description><![CDATA[<p>Normal nimmt das auch kein windows-compiler, so lange du nicht windows.h inkludierst, oder den entsprechenden header der den Typ definiert.</p>
<p>Und wenn du nen windows-spezifisches Tutorial durchmachst ist es doch klar, dass es windows-spezifischen code hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842091</guid><dc:creator><![CDATA[User--]]></dc:creator><pubDate>Sat, 30 Jul 2005 11:19:03 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 14:41:27 GMT]]></title><description><![CDATA[<p>b schrieb:</p>
<blockquote>
<p>Das INT typedef wird aber sehr sehr selten genutzt in der WinAPI. Die anderen die du genannt hast werden aber häufig eingesetzt.</p>
</blockquote>
<p>Nun, eigentlich ist INT ja auch ein bisschen sinnlos. int ist nunmal int, egal ob du jetzt ein gross geschriebenes Typ-Alias definierst oder nicht. Es macht keinen Sinn, INT anders zu definieren, zB</p>
<pre><code class="language-cpp">typedef long INT;
</code></pre>
<p>Was anderes ist es zB mit WORD, DWORD, INT32 etc.</p>
<p>Aber um mal auf die ursprüngliche Frage zurückzukommen, Standard Compiler kennen die grossgeschriebenen Typen natürlich nicht. Und auch andere Compiler werden das wohl kaum anbieten, da MS genau festgelegt hat, wo jeder Typ definiert wird. Nachzulesen im MSDN unter &quot;Windows Data Types&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842233</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sat, 30 Jul 2005 14:41:27 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 14:48:03 GMT]]></title><description><![CDATA[<p>wird sich INT nie ändern?????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842234</guid><dc:creator><![CDATA[sicher???]]></dc:creator><pubDate>Sat, 30 Jul 2005 14:48:03 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 14:55:12 GMT]]></title><description><![CDATA[<p>Keine Ahnung, aber die Chancen sind ziemlich gut, dass auch auf zukünftigen Plattformen INT mit</p>
<pre><code class="language-cpp">typedef int INT;
</code></pre>
<p>definiert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842238</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sat, 30 Jul 2005 14:55:12 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 15:56:29 GMT]]></title><description><![CDATA[<p>hallo<br />
also ausser den ms-compilern kommt mindestens der free bcc5.5 mit INT und int<br />
klar. ich vermute auch die c/c++-compiler von watcom und symantec/digital mars.<br />
hab die beiden letzten aber noch nicht getestet.<br />
artchi schrieb ( 2. beitrag) der wertebereich von INT ist bei den ms-compilern<br />
ist gleich egal ob 16, 32 oder 64 -bit compiler - int ist aber &quot;bit-gebunden&quot;.<br />
wenn das stimmt typedef = noch grösseres chaos. aber wie heisst es nur genies<br />
beherschen das chaos. <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="😉"
    /></p>
<p>habe mal vor einiger zeit einen dbase3-headerstruct (geschrieben für 16bit)<br />
mit sizeof(headergrösse) gecheckt: ergebnis je nach compiler 32 bis 37 byte<br />
gross! ursache asser int( 16 oder 32 bit) -&gt; char wird eventuell von den<br />
compilern im selben quelltext unterschiedlich optimiert (8, 16 oder 32 bit) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>einen 64-bit compiler hab ich noch nicht getestet.</p>
<p>mfg f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842270</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sat, 30 Jul 2005 15:56:29 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 16:18:57 GMT]]></title><description><![CDATA[<p>f.-th. schrieb:</p>
<blockquote>
<p>also ausser den ms-compilern kommt mindestens der free bcc5.5 mit INT und int<br />
klar.</p>
</blockquote>
<p>Kann ich nicht bestätigen.</p>
<blockquote>
<p>Undefined symbol 'INT' in function main()</p>
</blockquote>
<p>getestet mit Borland C++ 5.5.1 Compiler</p>
<p>f.-th. schrieb:</p>
<blockquote>
<p>artchi schrieb ( 2. beitrag) der wertebereich von INT ist bei den ms-compilern<br />
ist gleich egal ob 16, 32 oder 64 -bit compiler - int ist aber &quot;bit-gebunden&quot;.</p>
</blockquote>
<p>Weiss zwar nicht, was du mit &quot;bit-gebunden&quot; meinst, aber INT war schon immer ein int Alias (afaik). Unter DOS (16 Bit) war int auch 16 Bit, unter Win32 und Win64 ist int 32 Bit gross. So gross ist das Chaos also gar nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>f.-th. schrieb:</p>
<blockquote>
<p>habe mal vor einiger zeit einen dbase3-headerstruct (geschrieben für 16bit)<br />
mit sizeof(headergrösse) gecheckt: ergebnis je nach compiler 32 bis 37 byte<br />
gross! ursache asser int( 16 oder 32 bit)</p>
</blockquote>
<p>Für sowas nimmt man eben spezielle typedefs, zB int32. Damit ist sichergestellt, dass unabhängig von Compiler oder Plattform der Typ immer gleich gross ist. Zudem sollte man auf Alignment achten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842290</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sat, 30 Jul 2005 16:18:57 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 20:12:17 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/2813">@groovemaster</a>: ich hab meine c/c++ compiler auf einem anderen rechner.<br />
deswegen kann ich jetzt nicht meine sub-sub-version (bcc5.5.?) nachsehen<br />
aber windows-headerfile einbinden und dann INT no errors und no warnings. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
oder hast du mit deinem bcc5.5 noch keine windows-api-exe erstellt?</p>
<p>und zur grösse von int 16-bit-umgebung ist klar, 32-bit auch noch aber bei<br />
64-bit soll es nach den info's aus dem netz so sein das einige compiler<br />
meinen int sei 32 bit und andere int sei 64 bit.</p>
<p>und zur dbase3-header-struct: ich wollte weitgehend compiler-unabhängige<br />
quelltexte erstellen, denn welcher 16-bit-compiler kennt schon int32, da<br />
eignet sich schon eher short.</p>
<p>aber das eigentliche problem waren die unterschiedliche interpretation<br />
von char im selben quelltext mit dem selben compiler(verschiedene hersteller<br />
zeigten diesen effect). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
aber ich hab's inzwischen nachgelesen char ist mindestens 8bit breit, kann<br />
z.b. auf 32bit systemen auch 16bit oder 32bit breit sein. jenach position<br />
im quelltext wird dies von 32bit systemen entsprechend interpretiert. ich<br />
hab das system noch nicht erkannt. andere getestete compilerschalter brachten<br />
noch keinen erfolg. vielleicht find ich ja noch die passende kombination.</p>
<p>mfg f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842363</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sat, 30 Jul 2005 20:12:17 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sat, 30 Jul 2005 21:55:35 GMT]]></title><description><![CDATA[<p>f.-th. schrieb:</p>
<blockquote>
<p>aber windows-headerfile einbinden und dann INT no errors und no warnings.</p>
</blockquote>
<p>Also unterstützt der Compiler nicht INT, sondern typedef.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842404</guid><dc:creator><![CDATA[nillable]]></dc:creator><pubDate>Sat, 30 Jul 2005 21:55:35 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sun, 31 Jul 2005 02:11:26 GMT]]></title><description><![CDATA[<p>f.-th. schrieb:</p>
<blockquote>
<p>aber windows-headerfile einbinden und dann INT no errors und no warnings. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Compilerunterstützt bedeutet immer nativ, also ohne externe Definitionen. Wenn du irgendwelche Headerdateien einbindest, dann ist klar, dass dem Compiler der Typ dadurch bekannt ist. Das ist bei anderen Compiler naber genauso.</p>
<p>f.-th. schrieb:</p>
<blockquote>
<p>und zur grösse von int 16-bit-umgebung ist klar, 32-bit auch noch aber bei<br />
64-bit soll es nach den info's aus dem netz so sein das einige compiler<br />
meinen int sei 32 bit und andere int sei 64 bit.</p>
</blockquote>
<p>Das könnte vermutlich von Plattform zu Plattform unterschiedlich sein. Mir ist bisher lediglich bekannt, dass sich unter Windows long von 32 Bit auf 64 Bit vergrössert, alle anderen Ganzzahltypen sollen gleich bleiben.</p>
<p>f.-th. schrieb:</p>
<blockquote>
<p>und zur dbase3-header-struct: ich wollte weitgehend compiler-unabhängige<br />
quelltexte erstellen, denn welcher 16-bit-compiler kennt schon int32</p>
</blockquote>
<p>Äääähh, so ziemlich jeder DOS Compiler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> long.<br />
Genauso gut könntest du fragen, welcher 32 Bit Compiler schon int64 kennt? Hey ich kenn einen, GCC. Und noch einen, MSC. Oder wie wärs mit dem DMC? Nahezu jeder aktuelle Compiler kennt long long. OK, ist zwar C, aber idR gibt es Optionen, diesen Typ auch in C++ zu nutzen. Mal ganz abgesehen davon, dass einige Compiler noch eigene Typen mitbringen, zB wie __int64 beim MSC. Vielleicht dürfen wir uns in zukünftigen C++ Standards auch auf sowas wie C's &lt;stdint.h&gt; freuen.<br />
Du siehst, dieser ganze Typendschungel ist ein ziemliches Hick-Hack, aber es geht, wenn man nur will. Und ein int32 für 16 Bit Compiler nachzuschieben ist kein allzu grosses Problem. Wenn long nicht bereits 32 Bit gross ist, dann kann man immer noch zwei int16 nehmen, eines für lo und eines für hi. Du musst halt lediglich entscheiden, was du maximal supporten willst, und dann die Implementation entsprechend darauf ausrichten.</p>
<p>f.-th. schrieb:</p>
<blockquote>
<p>aber das eigentliche problem waren die unterschiedliche interpretation<br />
von char im selben quelltext mit dem selben compiler</p>
</blockquote>
<p>Sehr unwahrscheinlich. C++ definiert die Grösse von char zwar nicht exakt, aber zumindest soweit, dass ein char so gross wie ein Byte ist. Und ein Byte sollte auf dem jeweiligen Compiler immer gleich gross sein. Sicherlich kann die Grösse eines Bytes von einem zum anderen Compiler unterschiedlich gross sein, aber immerhin gibt es auch mehr Plattformen als nur Windows oder Linux.<br />
Wie ich bereits erwähnte, sind solche Beobachtungen oftmals auf Alignment zurückzuführen. Bsp.</p>
<pre><code class="language-cpp">struct foo
{
    char a;
    int b;
};
</code></pre>
<p>Gehen wir mal von einem 32 Bit System aus, auf dem char 8 Bit und int 32 Bit gross ist. Wider aller Erwartungen ist es möglich, dass hier ein Compiler für sizeof(foo) nicht 5 ausspucken wird. Warum? Nun, zum einen garantiert der Standard dies nicht. Und zum anderen möchte der Compiler evtl., dass für jeden Member höchstmögliche Zugriffsgeschwindigkeit erreicht wird, weil der Benutzer zB eingestellt hat, auf Geschwindigkeit zu optimieren. Für foo.a ist das ja noch kein grosses Problem, da foo.a ein Byte gross ist, und dies die kleinste adressierbare Einheit ist. Bei x86 CPUs ist es zB egal, an welcher Stelle dieses Byte im Speicher liegt, der Zugriff darauf ist immer gleich schnell (mal abgesehen davon, dass Lesezugriffe idR schneller als Schreibzugriffe sind). Bei foo.b ist es schon etwas schwieriger. Ich will jetzt nicht näher auf die Arbeitsweise von Memory-Pipelines in Verbindung mit der CPU eingehen, das würde zu weit führen. Aber x86 CPUs können zB schneller auf einen 32 Bit Wert zugreifen, wenn er auch an einer 32 Bit (4 Byte) Speichergrenze ausgerichtet ist. Der Compiler definiert diese Struktur dann wie folgt</p>
<pre><code class="language-cpp">struct foo
{
    char a;
    char __dummy[3];
    int b;
};
</code></pre>
<p>Da für die Struktur selbst dann auch mindestens ein 32 Bit Alignment verwendet wird, ist sichergestellt, dass foo.b immer an einer 32 Bit Grenze ausgerichtet ist.<br />
Dennoch gilt immer, dass sizeof(foo.a) == 1.<br />
Ich kann also deine Aussage bzgl. &quot;unterschiedliche interpretation von char&quot; nicht wirklich nachvollziehen.</p>
<p>f.-th. schrieb:</p>
<blockquote>
<p>aber ich hab's inzwischen nachgelesen char ist mindestens 8bit breit, kann<br />
z.b. auf 32bit systemen auch 16bit oder 32bit breit sein.</p>
</blockquote>
<p>Nun, wie bereits erwähnt, definiert der Standard keine exakten Grössen. Er sagt lediglich Folgendes:</p>
<pre><code>sizeof liefert die Grösse in Byte
1 == sizeof(char) &lt;= sizeof(short) &lt;= sizeof(int) &lt;= sizeof(long)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/842469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842469</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 31 Jul 2005 02:11:26 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sun, 31 Jul 2005 09:32:16 GMT]]></title><description><![CDATA[<p>grooevmaster! Muß dich leider berichtigen. long wird auf 64bit-System unter Windows weiterhin wie unter Win32 32bit bleiben, das wird sich nicht ändern. Denn da hat sich MS schon lange drauf fest gelegt. long long wird aber 64bit.</p>
<p>Hier die fundamentalen Typen und weiter unten die von MS:<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_pluslang_fundamental_types.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_pluslang_fundamental_types.asp</a></p>
<p>Data Type Ranges:<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_langref_data_type_ranges.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_langref_data_type_ranges.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/842518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842518</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 31 Jul 2005 09:32:16 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sun, 31 Jul 2005 09:55:17 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>grooevmaster! Muß dich leider berichtigen. long wird auf 64bit-System unter Windows weiterhin wie unter Win32 32bit bleiben, das wird sich nicht ändern. Denn da hat sich MS schon lange drauf fest gelegt.</p>
</blockquote>
<p>Das wäre aber schlecht. Welchen 64 Bit Typ wird es denn dann unter Win64 geben? Immerhin kennt C++ kein long long.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842529</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 31 Jul 2005 09:55:17 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sun, 31 Jul 2005 10:16:18 GMT]]></title><description><![CDATA[<p>Eigentlich gibts ja auch kein long, da long nur für &quot;long int&quot; steht. Ich würde einfach mal sagen, das man unter Windows am besten __int64 benutzt und sich z.B. ein typedef definiert, so das man bei einer Portierung oder anderen Compiler einfach umschalten kann. Also long long meidet aber __int64 indirekt durch ein eigenes typedef benutzt, z.B.:</p>
<pre><code class="language-cpp">typedef __int64 long64;
</code></pre>
<p>Das SDK von Maxon Cinema4D hat z.B. ein INT64, und die haben auch schon ohne Problem eine Win64-Version von ihrem C4D released. Nur als Beispiel das es irgendwie funktioniert, wenn man will. <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/842542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842542</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 31 Jul 2005 10:16:18 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sun, 31 Jul 2005 10:13:58 GMT]]></title><description><![CDATA[<p>Der Standard nicht, aber nahezu jeder Compiler kennt einen 64 Bit-Typ, also wird man sich ja einen typedefen können. Ich finde u64 bzw. i64 auch schöner als (unsigned) long long.</p>
<p>EDIT: Artchi war Sekundenbruchteile schneller <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="😉"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842543</guid><dc:creator><![CDATA[Walli]]></dc:creator><pubDate>Sun, 31 Jul 2005 10:13:58 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sun, 31 Jul 2005 17:47:24 GMT]]></title><description><![CDATA[<p>So, hab mich jetzt noch mal etwas genauer informiert. Scheint tatsächlich so zu sein, dass Win64 auf das LLP64 Datenmodell setzt. Find ich irgendwie schade. LP64 wäre imo konsequenter gewesen. Zum einen hätte man dann in C++ einen Standard Typ für 64 Bit Integer, und müsste nicht auf irgendwas compiler-spezifisches zurückgreifen. Zum anderen würde man nicht 2 Typen für das Gleiche verschwenden. Irgendwie hab ich das Gefühl, dass es MS Spass macht immer wieder Altlasten mitzuschleppen, anstatt irgendwo einen sauberen Schnitt zu machen. Auch wenn das kurzzeitig vielleicht etwas mehr Aufwand bei Portierungen verursacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/842889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842889</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 31 Jul 2005 17:47:24 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sun, 31 Jul 2005 18:01:45 GMT]]></title><description><![CDATA[<p><a href="http://blogs.msdn.com/oldnewthing/archive/2005/01/31/363790.aspx" rel="nofollow">http://blogs.msdn.com/oldnewthing/archive/2005/01/31/363790.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/842906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842906</guid><dc:creator><![CDATA[why...]]></dc:creator><pubDate>Sun, 31 Jul 2005 18:01:45 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sun, 31 Jul 2005 18:13:50 GMT]]></title><description><![CDATA[<p><a href="http://www.xxl.istgenial.de" rel="nofollow">www.xxl.istgenial.de</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/842923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/842923</guid><dc:creator><![CDATA[Unregistrierter]]></dc:creator><pubDate>Sun, 31 Jul 2005 18:13:50 GMT</pubDate></item><item><title><![CDATA[Reply to int oder INT on Sun, 31 Jul 2005 20:05:55 GMT]]></title><description><![CDATA[<p>why... schrieb:</p>
<blockquote>
<p><a href="http://blogs.msdn.com/oldnewthing/archive/2005/01/31/363790.aspx" rel="nofollow">http://blogs.msdn.com/oldnewthing/archive/2005/01/31/363790.aspx</a></p>
</blockquote>
<p>Sind für mich nur Ausreden. Was hindert MS denn daran, zB</p>
<pre><code class="language-cpp">LONG biWidth;
</code></pre>
<p>in</p>
<pre><code class="language-cpp">INT32 biWidth;
</code></pre>
<p>umzudefinieren, wenn sie wollen, dass die Grösse immer gleich bleibt? Wie bereits erwähnt, bringt das durchaus etwas mehr Arbeit mit sich. Ich tendiere aber eher dazu, Altlasten über Bord zu werfen, anstatt sich damit ständig ein zeitgemässes Design zu verbauen. Und wenn man so einen Schritt nicht bei der Umstellung von der einen zur anderen Bit-Architektur wagt, wann dann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/843005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/843005</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 31 Jul 2005 20:05:55 GMT</pubDate></item></channel></rss>