Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03547.jsonl.gz/1498

Vielen Dank Kai
Das von Dir gelieferte Beispiel mit den Erläuterungen ist sehr hilfreich und hat auch mir, der auf einem Wissensstand von C++ seit 2010 sich kaum mehr weiter gebildet hat und im Mikrocontroller Umfeld immer eher auf C setzte, als auf C++. Zu dieser Zeit war constexpr noch nicht geboren.
Auch das Statement:
for (auto &nocke : nocken) {}
scheint auch mit C++ 11 eingeführt worden zu sein und ist mir demnach (noch) nicht geläufig, nehme aber an, dass das «auto» an dieser Stelle eine Vereinfachung eines for() Schleife mitteilt und zum einen die Allokation eines Schleifenzählers, das Abbruchkriterium und auch die Anzahl der Durchläufe aus der Grösse der Tabelle nocke ermittelt wird.
&nocke:nocken der Zeiger auf die Tabelle und dem anschliessenden Typen der Struktur
nocke ist der Bezeichner des Schlaufenzählers, nocken der Inhalt des angegebenen Arrays, in diesem Beispiel zwei Strukturen nocken.
Natürlich, ich muss dies selber nachlesen *g* Aber liege ich so in etwa richtig?
Wenn dem so ist, dann erspart es einem die Schreibarbeit und beim Anlegen der Tabelle muss man sich jeweils nicht Gedanken darüber machen, den Compiler damit zu beauftragen, die Anzahl Einträge in der Tabelle bestimmen zu müssen. Damit werden einige Punkte, die gerne zu Fehlern führen, in einem Zug verhindert.
Zu Deinem Kommentar in Post 23
«Es ist mir ein Rätsel, warum auch in den Beispielen sehr häufig int verwendet wird. Ich habe noch keinen Controller mit mehr als 256 Pins gesehen. Schon gar keinen mit negativen Pin-Werten. Das soll aber erst mal nebensächlich sein, (int) stört die Funktion des Programmes nicht.»
Per Definition ist ein int in der Grösse undefiniert und wird vom Compiler, abhängig von der Registergrösse der Ziel CPU, bestimmt.
Nun passt dies aber bei einem Arduino mit einer 8-Bit CPU schon mal nicht zusammen, weil da nimmt der Compiler für int (wie Du korrekt geschrieben hast), 16 Bits. Ich weiss es nicht, vermute aber, dass man damit neuen Problemen ausweichen wollte, die man sich damit geschaffen hätte und definierte die 16Bit’s. Ich arbeitete mit C erst ab den 16 bit CPU’s (int war 16bit), dann mit den 32bit (int = 32bit) und heute sind es eben meist 64bit’s.
Ich habe mir den Vortrag von Herb Sutter noch nicht ganz angehört, werde dies aber noch tun und vermutlich reicht einmal Anhören auch nicht.
ich hoffe Du bleibst dem Forum noch lange treu, VIELEN DANK
Pius