<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>C printf: falsches Format?</title>
    <link>http://forum.geizhals.at/feed.jsp?id=637408</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(3): C printf: falsches Format?</title>
      <link>http://forum.geizhals.at/t637408,5447078.html#5447078</link>
      <description>&lt;blockquote&gt;&lt;em&gt; hoffentlich langweile ich damit niemanden&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;das bekommst mit, wenn dir niemand antwortet, allerdings ist für solche probleme ein forum da &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 29 Apr 2009 07:25:47 GMT</pubDate>
      <guid>http://forum.geizhals.at/t637408,5447078.html#5447078</guid>
      <dc:creator>Thunder</dc:creator>
      <dc:date>2009-04-29T07:25:47Z</dc:date>
    </item>
    <item>
      <title>Re(3): C printf: falsches Format?</title>
      <link>http://forum.geizhals.at/t637408,5444340.html#5444340</link>
      <description>Hm, auf den ersten Blick sieht der gcc-Output OK aus, vielleicht eine veraltete C-library...&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 27 Apr 2009 15:59:16 GMT</pubDate>
      <guid>http://forum.geizhals.at/t637408,5444340.html#5444340</guid>
      <dc:creator>mjy@geizhals.at</dc:creator>
      <dc:date>2009-04-27T15:59:16Z</dc:date>
    </item>
    <item>
      <title>Re(2): C printf: falsches Format?</title>
      <link>http://forum.geizhals.at/t637408,5444265.html#5444265</link>
      <description>Ausgabe für den printf-Test ist: "8 32"&lt;br&gt;&lt;br&gt;Übrigens habe ich das für andere Datentypen (und Zeiger auch überprüft):&lt;br&gt;&lt;br&gt; short int: 2 (short int*: 4)&lt;br&gt; int: 4 (int*: 4)&lt;br&gt; long int: 4 (long int*: 4)&lt;br&gt; long long int: 8 (long long int*: 4)&lt;br&gt;&lt;br&gt;Ich vermute auch, dass es ein Fehler vom C-Copmiler sein könnte, da es bei mir genauso wie in den anderen Kommentaren beschrieben mit g++ keine Probleme gab.&lt;br&gt;&lt;br&gt;PS: Die Ausgabe von "gcc -S" ist: (hoffentlich langweile ich damit niemanden)&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
	.file	"test.c"&#xD;
	.def	___main;	.scl	2;	.type	32;	.endef&#xD;
	.section .rdata,"dr"&#xD;
	.align 32&#xD;
llarr.0:&#xD;
	.quad	1000&#xD;
	.quad	2000&#xD;
	.quad	3000&#xD;
	.quad	4000&#xD;
	.align 4&#xD;
LC0:&#xD;
	.ascii "llptr:\11[%6lld][%6lld][%6lld][%6lld]\12\0"&#xD;
	.align 4&#xD;
LC1:&#xD;
	.ascii "llarr:\11[%6lld][%6lld][%6lld][%6lld]\12\0"&#xD;
	.text&#xD;
.globl _main&#xD;
	.def	_main;	.scl	2;	.type	32;	.endef&#xD;
_main:&#xD;
	pushl	%ebp&#xD;
	movl	%esp, %ebp&#xD;
	subl	$56, %esp&#xD;
	andl	$-16, %esp&#xD;
	movl	$0, %eax&#xD;
	addl	$15, %eax&#xD;
	addl	$15, %eax&#xD;
	shrl	$4, %eax&#xD;
	sall	$4, %eax&#xD;
	movl	%eax, -12(%ebp)&#xD;
	movl	-12(%ebp), %eax&#xD;
	call	__alloca&#xD;
	call	___main&#xD;
	movl	$4, -4(%ebp)&#xD;
	movl	-4(%ebp), %eax&#xD;
	sall	$3, %eax&#xD;
	movl	%eax, (%esp)&#xD;
	call	_malloc&#xD;
	movl	%eax, -8(%ebp)&#xD;
	cmpl	$0, -8(%ebp)&#xD;
	je	L2&#xD;
	movl	-8(%ebp), %eax&#xD;
	movl	$1000, (%eax)&#xD;
	movl	$0, 4(%eax)&#xD;
	movl	-8(%ebp), %eax&#xD;
	addl	$8, %eax&#xD;
	movl	$2000, (%eax)&#xD;
	movl	$0, 4(%eax)&#xD;
	movl	-8(%ebp), %eax&#xD;
	addl	$16, %eax&#xD;
	movl	$3000, (%eax)&#xD;
	movl	$0, 4(%eax)&#xD;
	movl	-8(%ebp), %eax&#xD;
	addl	$24, %eax&#xD;
	movl	$4000, (%eax)&#xD;
	movl	$0, 4(%eax)&#xD;
	movl	-8(%ebp), %eax&#xD;
	addl	$24, %eax&#xD;
	movl	4(%eax), %edx&#xD;
	movl	(%eax), %eax&#xD;
	movl	%eax, 28(%esp)&#xD;
	movl	%edx, 32(%esp)&#xD;
	movl	-8(%ebp), %eax&#xD;
	addl	$16, %eax&#xD;
	movl	4(%eax), %edx&#xD;
	movl	(%eax), %eax&#xD;
	movl	%eax, 20(%esp)&#xD;
	movl	%edx, 24(%esp)&#xD;
	movl	-8(%ebp), %eax&#xD;
	addl	$8, %eax&#xD;
	movl	4(%eax), %edx&#xD;
	movl	(%eax), %eax&#xD;
	movl	%eax, 12(%esp)&#xD;
	movl	%edx, 16(%esp)&#xD;
	movl	-8(%ebp), %eax&#xD;
	movl	4(%eax), %edx&#xD;
	movl	(%eax), %eax&#xD;
	movl	%eax, 4(%esp)&#xD;
	movl	%edx, 8(%esp)&#xD;
	movl	$LC0, (%esp)&#xD;
	call	_printf&#xD;
	movl	llarr.0+24, %eax&#xD;
	movl	llarr.0+28, %edx&#xD;
	movl	%eax, 28(%esp)&#xD;
	movl	%edx, 32(%esp)&#xD;
	movl	llarr.0+16, %eax&#xD;
	movl	llarr.0+20, %edx&#xD;
	movl	%eax, 20(%esp)&#xD;
	movl	%edx, 24(%esp)&#xD;
	movl	llarr.0+8, %eax&#xD;
	movl	llarr.0+12, %edx&#xD;
	movl	%eax, 12(%esp)&#xD;
	movl	%edx, 16(%esp)&#xD;
	movl	llarr.0, %eax&#xD;
	movl	llarr.0+4, %edx&#xD;
	movl	%eax, 4(%esp)&#xD;
	movl	%edx, 8(%esp)&#xD;
	movl	$LC1, (%esp)&#xD;
	call	_printf&#xD;
L2:&#xD;
	movl	$0, %eax&#xD;
	leave&#xD;
	ret&#xD;
	.def	_printf;	.scl	3;	.type	32;	.endef&#xD;
	.def	_malloc;	.scl	3;	.type	32;	.endef&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 27 Apr 2009 15:00:51 GMT</pubDate>
      <guid>http://forum.geizhals.at/t637408,5444265.html#5444265</guid>
      <dc:creator>goombaah</dc:creator>
      <dc:date>2009-04-27T15:00:51Z</dc:date>
    </item>
    <item>
      <title>Re: C printf: falsches Format?</title>
      <link>http://forum.geizhals.at/t637408,5443576.html#5443576</link>
      <description>Sieht nach einem kaputten/alten gcc aus, der Ausgabe nach werden printf falsche Adressen übergeben. Was gibt denn&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
printf ("%ld %ld\n", sizeof(llptr[0]), sizeof(llptr));&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;aus?&lt;br&gt;&lt;br&gt;(gcc -S wäre auch interessant ...)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 27 Apr 2009 09:21:48 GMT</pubDate>
      <guid>http://forum.geizhals.at/t637408,5443576.html#5443576</guid>
      <dc:creator>mjy@geizhals.at</dc:creator>
      <dc:date>2009-04-27T09:21:48Z</dc:date>
    </item>
    <item>
      <title>Re: C printf: falsches Format?</title>
      <link>http://forum.geizhals.at/t637408,5443580.html#5443580</link>
      <description>Sieht nach einem kaputten/alten gcc aus, der Ausgabe nach werden printf falsche Adressen übergeben. Was gibt denn&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
printf ("%ld %ld\n", sizeof(llarr[0]), sizeof(llarr));&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;aus?&lt;br&gt;&lt;br&gt;(gcc -S wäre auch interessant ...)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 27 Apr 2009 09:21:48 GMT</pubDate>
      <guid>http://forum.geizhals.at/t637408,5443580.html#5443580</guid>
      <dc:creator>mjy@geizhals.at</dc:creator>
      <dc:date>2009-04-27T09:21:48Z</dc:date>
    </item>
    <item>
      <title>Re: C printf: falsches Format?</title>
      <link>http://forum.geizhals.at/t637408,5443556.html#5443556</link>
      <description>gcc version 4.0.1 (Apple Inc. build 5465)&lt;br&gt;&lt;br&gt;llptr:	[&amp;nbsp;&amp;nbsp;1000][&amp;nbsp;&amp;nbsp;2000][&amp;nbsp;&amp;nbsp;3000][&amp;nbsp;&amp;nbsp;4000]&lt;br&gt;llarr:	[&amp;nbsp;&amp;nbsp;1000][&amp;nbsp;&amp;nbsp;2000][&amp;nbsp;&amp;nbsp;3000][&amp;nbsp;&amp;nbsp;4000]&lt;br&gt;&lt;br&gt;Auch mit g++ gehts bei mir Tip Top!&lt;br/&gt;</description>
      <pubDate>Mon, 27 Apr 2009 09:14:42 GMT</pubDate>
      <guid>http://forum.geizhals.at/t637408,5443556.html#5443556</guid>
      <dc:creator>thE</dc:creator>
      <dc:date>2009-04-27T09:14:42Z</dc:date>
    </item>
    <item>
      <title>Re: C printf: falsches Format?</title>
      <link>http://forum.geizhals.at/t637408,5442344.html#5442344</link>
      <description>Dein Code gibt mir mit printf die korrekten Werte aus (Linux, x86_64, GCC 4.3.3).&lt;br&gt;&lt;br&gt;Was da bei dir passiert verstehe ich auch nicht. Aber C ist eh nicht so meins. &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 26 Apr 2009 13:05:21 GMT</pubDate>
      <guid>http://forum.geizhals.at/t637408,5442344.html#5442344</guid>
      <dc:creator>juwb</dc:creator>
      <dc:date>2009-04-26T13:05:21Z</dc:date>
    </item>
    <item>
      <title>C printf: falsches Format?</title>
      <link>http://forum.geizhals.at/t637408,5442264.html#5442264</link>
      <description>Bei einem C Testprogramm unter WinXP mit mingw32 (gcc 3.4.2) ist mir aufgefallen, dass beim Anlegen von dynamischen Arrays mit den Datentypen "long long int" und "long double" und erfolgreicher Zuweisung der Werte die Ausgabe mit printf() diese Werte nicht korrekt anzeigt.&lt;br&gt;&lt;br&gt;Das interessante ist, dass alle anderen Datentypen funktionieren, und für den selben Code auch die Ausgabe mit C++ cout passt!&lt;br&gt;&lt;br&gt;Für die Formatangaben habe ich nach &lt;a href="http://man.cx/printf(3" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;man.cx/&lt;wbr/&gt;printf(3&lt;/a&gt; ) und anderen Quellen %lld für "long long int" und "%Lf" für long double verwendet.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
long long int* llptr = (long long int*)malloc(sizeof(long long int)*nVar);&#xD;
static long long int llarr[4] = {1000, 2000, 3000, 4000};&#xD;
&#xD;
if (llptr != 0) {&#xD;
    llptr[0] = 1000; llptr[1] = 2000; llptr[2] = 3000; llptr[3] = 4000;&#xD;
&#xD;
    printf("llptr:\t[%6lld][%6lld][%6lld][%6lld]\n",&#xD;
           llptr[0], llptr[1], llptr[2], llptr[3]);&#xD;
&#xD;
    printf("llarr:\t[%6lld][%6lld][%6lld][%6lld]\n",&#xD;
           llarr[0], llarr[1], llarr[2], llarr[3]);&#xD;
}&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Ausgabe mit printf:&lt;br&gt;&amp;nbsp;&amp;nbsp;llptr:&amp;nbsp;&amp;nbsp;[&amp;nbsp;&amp;nbsp;1000][&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0][&amp;nbsp;&amp;nbsp;2000][&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0]&lt;br&gt;&amp;nbsp;&amp;nbsp;llarr:&amp;nbsp;&amp;nbsp;[&amp;nbsp;&amp;nbsp;1000][&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0][&amp;nbsp;&amp;nbsp;2000][&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0]&lt;br&gt;&lt;br&gt;Ausgabe mit cout (korrekt):&lt;br&gt;&amp;nbsp;&amp;nbsp;llptr:&amp;nbsp;&amp;nbsp;[&amp;nbsp;&amp;nbsp;1000][&amp;nbsp;&amp;nbsp;2000][&amp;nbsp;&amp;nbsp;3000][&amp;nbsp;&amp;nbsp;4000]&lt;br&gt;&amp;nbsp;&amp;nbsp;llarr:&amp;nbsp;&amp;nbsp;[&amp;nbsp;&amp;nbsp;1000][&amp;nbsp;&amp;nbsp;2000][&amp;nbsp;&amp;nbsp;3000][&amp;nbsp;&amp;nbsp;4000]&lt;br&gt;&lt;br&gt;Woran liegt das fehlerhafte Verhalten von printf? &lt;img src="frage.gif" width="16" height="26" align="absmiddle" alt="?-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 26 Apr 2009 11:46:00 GMT</pubDate>
      <guid>http://forum.geizhals.at/t637408,5442264.html#5442264</guid>
      <dc:creator>goombaah</dc:creator>
      <dc:date>2009-04-26T11:46:00Z</dc:date>
    </item>
  </channel>
</rss>
