![]() |
AW: switch, break, case c++
Und noch mal der Vollständigkeithalber:
"{" und "}" dienen nur der Lesbarkeit, können also weggelassen werden. "break" dient dem Abschluß eines Zweiges einer Switch..Case; "break" kann im letzten case-Zweig auch weggelassen werden. Wird "break" mittendrinn weggelassen, so werden die weiteren case's ausgeführt, bis ein break kommt oder die Switch-Anweisung zuende ist; Beispiele:
Code:
switch(x){
case 1: b=0;c=0;break; case 2: b=1;c=1;break; }
Code:
Spezialfälle:
switch(x){
case 1: b=0;c=0;break; case 2: b=1;c=1;break; default: b=99;c=99; }
Code:
Ergebnis wär in dem Fall b=99 und c=99, da die Case nicht abegeschlossen wird (mit break);
switch(x){
case 1: b=0;c=0; else b=1;c=1; default: b=99;c=99; } Ich hoffe ich konnte dir eine :idea: bringen :) |
AW: switch, break, case c++
Zitat:
![]() |
AW: switch, break, case c++
hmm...kann sein. Da ich in C++ usw. genauso programmier wie in Delphi, deklariere ich keine Variablen mittem im Code. Damit is mir das bisher nicht aufgefallen :)
|
AW: switch, break, case c++
Zitat:
gruss |
AW: switch, break, case c++
Zitat:
|
AW: switch, break, case c++
Nein, aus Erfahrung kann ich dir sagen, das das den Code nur Unübersichtlicht macht (insbesondere bei Großen und Komplexen Projekten). Das einzige, das ich kenne, das noch schlimmer ist in der Hinsicht ist PHP. Da musst du noch nicht mal eine Variable deklarieren. Du verwendest sie einfach. Wenn du dann noch im Team mit 5 Leuten arbeitest....:shock:
|
AW: switch, break, case c++
Noch einen gutgemeinten Style Hinweis für solche API Programme:
- so ewig lange und auch noch verschachtelten "Endlos Switch/Case" lässt man nicht auf Dauer so im Code - Microsoft empfahl früher MessageBreaker(Makros samt TypeCasts für weitere Nachrichtenbehandlung mit/in einzelnen "TypSicheren" Einzelfunktionen) - ich habe es stets selbst gemacht und bin es mehr logisch funktional angegangen... also "HandleMenuMessages(...)" "HandleControlMessages(...)" "HandleScrollMessages(...)" "HandlePaintMessages(...)"... - mein Haupt "switch" und mein innerer WMCOMMAND "switch" bestehen im ReleaseProgramm stets nur aus "case" mit "HandleXXX(...)" Aufrufen. - ich hatte mir angewöhnt nach dem Haupt "switch" in der FensterFunktion wenn LogDebugInfo nicht voll deaktiviert, dort immer GetLastError zu prüfen und wenn was anliegt dies mit TimeStamp und samt den 4 Übergabeparametern der Fensterfunktion zu loggen... das ja mir jahrelang so gereicht um alles einigermaßen sauber(=ohne da noch ständig nicht bearbeitete LastErrors") zu verarbeiten Klar gibt es auch Exeptions mit denen man um sich werfen kann, aber das Konzept der WinAPI beruht nunmal mehr auf RückgabeCodes und GetLastError.. für weitere Details, und das funktioniert mit etwas mehr Handarbeit durchaus garnicht so schlecht:) |
AW: switch, break, case c++
Zitat:
Die den Speicher mitunter an verschiedenen stellen sehr schnell mal eben so überschreiben. Bei solchen Konstellationen
Code:
Ist X nur solange definiert\gültig wie man sich innerhalb der Schleife befindet.
{
long x = 0; x += + 10; } Der Speicher wird also mit der Variable X nicht überschrieben. Bei einer globalen Definition ist es sehr schwer bei überschriebenen Speicher den Fehler nachher zu finden. Aber gut jeder wie er will. gruss |
AW: switch, break, case c++
Zitat:
![]() |
AW: switch, break, case c++
Noch ein kleiner Tipp von mir: Ich würde die teilweise sehr langen Codeblöcke in sprechend benannte Funktionen auslagern. Dann wird deine ganze switch/case Konstruktion auch übersichtlicher. Und du siehst am Funktionsnamen, was an der Stelle passiert.
|
AW: switch, break, case c++
Zitat:
Von daher kann ich mir das sparen.. letztendlich spielt es keine rolle. Am ende nur eine Schönheitskorrektur. gruss |
AW: switch, break, case c++
[QUOTE=EWeiss;1379739]
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz