<?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[error: two or more data types in declaration specifiers]]></title><description><![CDATA[<p>Ich mache nach dem Lowlevel-Tutorial ([<a href="http://www.lowlevel.eu/wiki/OS-Dev_f%C3%BCr_Einsteiger" rel="nofollow">http://www.lowlevel.eu/wiki/OS-Dev_f%C3%BCr_Einsteiger</a>) ein OS zu schreiben. Ich kann C++, aber in C bin ich ein Anfänger. Auf Empfehlung aus diesem Forum habe ich ein structure erstellt.</p>
<pre><code class="language-cpp">structure console {
char lines[25][160];
int curpos;
int curline;
}
</code></pre>
<p>Jetzt habe ich eine Konstruktorfunktion geschrieben.</p>
<pre><code class="language-cpp">struct console init_cons() {
     struct console;
     for (int i = 0; i &lt; 25; i++) {
     for (int j = 0; j &lt; 160; j++) {
          cons-&gt;lines[i][j] = ' ';
          j++;
          cons-&gt;lines[i][j] = 0x07;
     cons-&gt;curline = 0;
     cons-&gt;curpos = 0;
}
</code></pre>
<p>Ich erhalte 2 Fehler, den im Titel und einen über die for-Schleifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286536/error-two-or-more-data-types-in-declaration-specifiers</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 06:02:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286536.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 May 2011 17:12:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Wed, 11 May 2011 17:12:18 GMT]]></title><description><![CDATA[<p>Ich mache nach dem Lowlevel-Tutorial ([<a href="http://www.lowlevel.eu/wiki/OS-Dev_f%C3%BCr_Einsteiger" rel="nofollow">http://www.lowlevel.eu/wiki/OS-Dev_f%C3%BCr_Einsteiger</a>) ein OS zu schreiben. Ich kann C++, aber in C bin ich ein Anfänger. Auf Empfehlung aus diesem Forum habe ich ein structure erstellt.</p>
<pre><code class="language-cpp">structure console {
char lines[25][160];
int curpos;
int curline;
}
</code></pre>
<p>Jetzt habe ich eine Konstruktorfunktion geschrieben.</p>
<pre><code class="language-cpp">struct console init_cons() {
     struct console;
     for (int i = 0; i &lt; 25; i++) {
     for (int j = 0; j &lt; 160; j++) {
          cons-&gt;lines[i][j] = ' ';
          j++;
          cons-&gt;lines[i][j] = 0x07;
     cons-&gt;curline = 0;
     cons-&gt;curpos = 0;
}
</code></pre>
<p>Ich erhalte 2 Fehler, den im Titel und einen über die for-Schleifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2061898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2061898</guid><dc:creator><![CDATA[Fahrheizung]]></dc:creator><pubDate>Wed, 11 May 2011 17:12:18 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Wed, 11 May 2011 17:15:22 GMT]]></title><description><![CDATA[<p>Fahrheizung schrieb:</p>
<blockquote>
<pre><code class="language-cpp">structure console {
</code></pre>
</blockquote>
<p>Was ist <code>structure</code> ? Vielleicht meinst du <code>struct</code> .</p>
<p>Fahrheizung schrieb:</p>
<blockquote>
<pre><code class="language-cpp">struct console init_cons() {
     struct console;
}
</code></pre>
</blockquote>
<p>Typendeklaration in Funktion? Kannst du wirklich C(++)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2061900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2061900</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Wed, 11 May 2011 17:15:22 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Wed, 11 May 2011 17:16:22 GMT]]></title><description><![CDATA[<p>Erstens: Ich hoffe, das struct<strong>ure</strong> ist nur ein Tippfehler.<br />
Zweitens: Was soll die &quot;Anweisung&quot; <code>struct console;</code> eigentlich bewirken? Wenn du eine Variable anlegen willst, solltest du ihr auch einen Namen geben.<br />
Drittens: Da fehlen die schleißenden Klammern } zu den { der beiden Schleifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2061903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2061903</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 11 May 2011 17:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Thu, 12 May 2011 11:46:52 GMT]]></title><description><![CDATA[<p>Was du in C++ nicht machen kannst, kannst du in 99 % der Fälle in C auch nicht machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062176</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Thu, 12 May 2011 11:46:52 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Thu, 12 May 2011 16:24:06 GMT]]></title><description><![CDATA[<p>structure ist ein Tippfehler im Beitrag. Ich habe das aus einer VM abgetippt.</p>
<p>Ich KANN C++. Die Deklaration innerhalb der Funktion ist die für eine LOKALE Variable (sagt mir nicht, dass das in C++ nicht geht!)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062352</guid><dc:creator><![CDATA[Fahrheizung]]></dc:creator><pubDate>Thu, 12 May 2011 16:24:06 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Thu, 12 May 2011 16:31:35 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Zweitens: Was soll die &quot;Anweisung&quot; <code>struct console;</code> eigentlich bewirken? Wenn du eine Variable anlegen willst, solltest du ihr auch einen Namen geben.</p>
</blockquote>
<p>Das wird wahrscheinlich auch ein Tippfehler sein, weil er ja später eine Variable richtig verwendet.<br />
Aber sollte deine Funktion nicht einen Wert vom Typ <code>console</code> zurückgeben..?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062357</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Thu, 12 May 2011 16:31:35 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Thu, 12 May 2011 16:39:42 GMT]]></title><description><![CDATA[<p>Fahrheizung schrieb:</p>
<blockquote>
<p>Ich KANN C++. Die Deklaration innerhalb der Funktion ist die für eine LOKALE Variable (sagt mir nicht, dass das in C++ nicht geht!)</p>
</blockquote>
<p>Eigentlich schon, aber keine namenlosen Variablen.</p>
<p>Vielleicht solltest du mal den kompletten Quellcode (wenn er nicht zu lang ist) hier hinpacken, damit wir das besser beurteilen können.</p>
<p>PS: Hinter der struct-Definition fehlt übrigens ein Semikolon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062360</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 May 2011 16:39:42 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Thu, 12 May 2011 16:40:14 GMT]]></title><description><![CDATA[<p>Fahrheizung schrieb:</p>
<blockquote>
<p>structure ist ein Tippfehler im Beitrag. Ich habe das aus einer VM abgetippt.</p>
<p>Ich KANN C++. Die Deklaration innerhalb der Funktion ist die für eine LOKALE Variable (sagt mir nicht, dass das in C++ nicht geht!)</p>
</blockquote>
<p>Auch in C++ kannst du keine Variable deklarieren, ohne ihren Namen hinzuschreiben.</p>
<p>Folglich muss das &quot;struct console cons;&quot; heißen.</p>
<p>Auch die beiden fehlenden schließenden Klammern wirst du sowohl in einer vernünftigen IDE wie auch mit einem C++-Compiler bemerken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062362</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Thu, 12 May 2011 16:40:14 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Mon, 06 Jun 2011 16:21:03 GMT]]></title><description><![CDATA[<p>Ich habe den Code damals hektisch abgetippt (kurz vorm Herunterfahren) und seither einige Änderungen vorgenommen.</p>
<p>Hier der komplette Code des console-Moduls:</p>
<pre><code class="language-cpp">#ifndef MOD_CONSOLE_INCLUDED
#define MOD_CONSOLE_INCLUDED

/*
console

Das Kernelmodul console stellt (einfache) Kernelfunktionen für Textausgabe bereit.
Ein Structure namens console verwaltet Textausgabe in einer virtuellen Konsole.
update_screen_to_console_struct gibt dieses Structure aus.
Der &quot;Cursor&quot; ist in NanoOS der Punkt, wo neue Daten ausgegeben werden.
Er ist unsichtbar und wird nur für print, printf und printline benutzt.
Das hindert Developer nicht daran, ihn für eigene Funktionen zu nutzen.
*/

char *video = 0xB8000; /*Zeiger auf den Videospeicher*/

struct console { /*Structure, das CLI-Bildschirminhalt beschreibt*/
char chars[25][80]; /*Zeichen am Bildschirm*/
char format[25][80]; /*Format der Zeichen*/
short curline; /*Aktuelle Zeile*/
short curpos; /*Aktuelle Spalte*/
}; /*Initializor: void structinit_console*/

struct console kout;

void structinit_console(struct console cons) /*Initialisiere ein Objekt des Structs Console*/
{
    /*Aktuelle Zeile/Spalte auf 0 -&gt; Curser in der linken oberen Ecke*/
    cons.curline = 0;
    cons.curpos = 0;
    /*Pro Zeichen und Zeile*/
    for (int i = 0; i &lt; 25; i++) { for(int j = 0; j &lt; 80; j++)
    {
        /*Zeichen auf Leerzeichen und Format auf &quot;Grau auf schwarzem Grund&quot; setzen. -&gt;Zeichen gelöscht*/
        cons.chars[i][j] = &quot; &quot;;
        cons.format[i][j] = 0x07;
    }}
    /*Das Structure wurde fertig initialisiert. Es enthält nun einen leeren Bildschirm mit Cursor in der linken obdere Ecke.*/
}

void update_screen_to_console_struct(struct console cons) /*Ein console-Structure auf dem Bildschirm anzeigen*/
{
    /*Initialisiere den Integer K, der in jedem Durchlauf erhöht wird und auf die Stelle im Videospeicher zeigt.*/
    int k;
    /*pro Zeichen und Zeile*/
    for (int i = 0; i &lt; 25; i++) { for(int j = 0; j &lt; 80; j++)
    {
        /*i ist die Zeile, j ist die Spalte*/
        video[k] = cons.chars[i][j];
        k++;
        video[k] = cons.format[i][j];
    }}
}

void modinit_console(void) /*Initialisiere das Kernelmodul console*/
{
    /*Initialisiere kout. kout wird dabei geleert.*/
    structinit_console(kout);
    /*kout (dzt. leerer Bildschirm mit Cursor auf linke obere Ecke) auf den Bildschirm ausgeben*/
    update_screen_to_console_struct(kout);
}

void kprintf(struct console cons, char *S)
{
    /*Zeichen für Zeichen ausgeben...*/
    /*pro Zeile/Zeichen*/
    for (int i = 0; i &lt; 25; i++) { for(int j = 0; j &lt; 80; j++)
    {
        /*i=Zeilennummer, j=Spaltennummer*/
    }}
}

#endif /*ifndef MOD_CONSOLE_INCLUDED*/
</code></pre>
<p>HINWEIS: kprintf ist noch nicht komplett programmiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2074120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2074120</guid><dc:creator><![CDATA[Fahrheizung]]></dc:creator><pubDate>Mon, 06 Jun 2011 16:21:03 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Mon, 06 Jun 2011 16:29:41 GMT]]></title><description><![CDATA[<p>Erstens: Die Funktion <code>structinit_console</code> hat schonmal das Problem, daß du die Parameter-Übergabe nicht richtig verstanden hast - du übergibst die Konsole per value und initialisierst dann eine lokale Kopie der Konsole, davon bekommt das übergebene kout überhaupt nichts mit.</p>
<p>Zweitens: <code>update_screen_to_console_struct</code> ist ein etwas unpassender Name für eine Funktion, die Daten von der console auf den Bildschirm überträgt <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2074129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2074129</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 06 Jun 2011 16:29:41 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Mon, 06 Jun 2011 16:29:48 GMT]]></title><description><![CDATA[<p>Zweitens? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2074131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2074131</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 06 Jun 2011 16:29:48 GMT</pubDate></item><item><title><![CDATA[Reply to error: two or more data types in declaration specifiers on Mon, 06 Jun 2011 16:30:30 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Zweitens? <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>
</blockquote>
<p>Zweitens habe ich versehentlich auf die falsche Taste gedrückt <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2074132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2074132</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 06 Jun 2011 16:30:30 GMT</pubDate></item></channel></rss>