Wenn Wert zwischen X und X, dann.

Gast #2036933
Lesenswert?

Hallo,

ich möchte ein Softwaremäßiges blinken realisieren. Die Blinkreihenfolge 
ist relativ komlex.

Bisher habe ich einen Zähler jeden Zyklus einen um 1 hochzählen lassen 
und dann geschrieben.
1
if (pwm_Counter >=100)
2
{
3
     If (pwm_Counter < 200)
4
     {
5
            "LED an"
6
      }
7
Else 
8
{
9
     "LED aus" 
10
}

besser wäre ja:
if (pwm_Counter zwischen 100 und 200)
{
LED an
}


Danke schonmal für eure Hilfe.
Lg finnp
Gast #2036939
Lesenswert?

Finn schrieb:
> if (pwm_Counter >=100)
> {
>      If (pwm_Counter < 200)
>      {
>             "LED an"
>       }
> Else
> {
>      "LED aus"
> }

Preisfrage: Zu welchem if gehört das else?


> if (pwm_Counter zwischen 100 und 200)

wird auf 2 Bedingungen aufgeteilt, die UND-verknüpft werden:

if(pwm_Counter >= 100 && pwm_Counter < 200)
...
:-)
Gast #2037007
Lesenswert?

>Wobei Peter gemein war, was er da geschrieben hat, ist eine
>gcc-Spezialität. Eine Bereichsangabe bei case kennen andere Compiler
>nicht.

Da hier in letzter Zeit öfter Hinweise auf Syntax-Varianten kommen, die 
eigentlich gcc-Sonderfälle und nicht C-Standard sind, möchte ich Peter 
und auch andere höflich bitten darauf hinzuweisen. Man könnte so eine 
unnötige Diskussion oder Nachfrage vermeiden.
#2037016
Lesenswert?

Huch schrieb:
> Da hier in letzter Zeit öfter Hinweise auf Syntax-Varianten kommen, die
> eigentlich gcc-Sonderfälle und nicht C-Standard sind, möchte ich Peter
> und auch andere höflich bitten darauf hinzuweisen. Man könnte so eine
> unnötige Diskussion oder Nachfrage vermeiden.

warum sollte man in einem GCC-Forum darauf hinweisen, dass der Code für 
GCC ist?
Persönliche Seite #2037051
Lesenswert?

Justus Skorps schrieb:
> warum sollte man in einem GCC-Forum darauf hinweisen, dass der Code für
> GCC ist?

Zwar bezieht sich dieses Forum auf GCC, aber auf GCC als C- (oder C++-) 
Compiler und nicht als Compiler für proprietäre nichtportable 
Sprachkonstrukte.

Solange das von Peter verwendete /case/-Statement nicht in einem 
C1x-Standard auftaucht, ist das deutlich als nichtportabel zu 
kennzeichnen.
Gast #2037123
Lesenswert?

Nun, obwohl es "formal" vielleicht sein mag, das man in einem GCC 
übertiteltem Forum, auch Code bzw. Beispiele erwarten kann, die 
ausschliesslich mit gcc funktionieren, meine ich, das es für alle Leser 
hilfreich sein wird, auf solche Fälle gesondert hinzuweisen.

Nicht weil man demjenigen, der solche Beispiele bringt irgendeinen 
Vorwurf machen könnte, sondern weil es einfach nur unterstützend wirkt, 
was ja irgendwie auch der Zweck des Forums ist. Wer solche Beispiele 
bringt ist auch sicherlich nicht "verpflichtet" einen Hinweis zu 
bringen, aber es würde der grundlegenden Absicht des Forums 
entgegenkommen zu helfen und zu unterstützen.

Mir selbst ist es auch schon so gegangen, dass ich bei einigen Fällen 
gestutzt habe, im K&R nachgelesen und dann erst durch Recherche 
festgestellt habe, das etwas eine gcc-Spezialität ist. Dabei halte ich 
mich für C-erfahren und einigermaßen sattelfest. So hätte mir ein 
kleiner Hinweis einige Mühe erspart. (Ich hätte vielleicht gleich in der 
gcc Dokumentation nachgeschaut).

Es geht mir also bei meiner Bitte um den Hinweis auf den gcc-Spezialfall 
wirklich nur um Unterstützung nicht darum ob man im Recht ist diesen 
wegzulassen oder nicht. Ich meine das alle Leser davon profitieren 
könnten.
#2038982
Lesenswert?

Ich denke mal, da bricht keinem ein Zacken aus der Krone, wenn er 
einfach mal nachfragt, wenn ein Tip nicht funktioniert.
Daher halte ich es für müßig, nen Haufen Vermutungen anzustellen, wie 
jemand richtig antworten sollte.

Ich finde allerdings die Case-Bereiche für sinnvoll. Sie machen den Code 
deutlich besser lesbar gegenüber if-else-Monsterbäumen.
Und sogar Bascom kann das.
Ich habe auch vom Assemblerlisting her den Eindruck, der GCC kann den 
Code dann deutlich besser optimieren.

Man hat damit sogar einen Sinnfälligkeitscheck, d.h. die Case dürfen 
sich nicht überlappen.
Ich hatte z.B. mal ne if-else-Kolonne, die unsinnig war, weil ein 
Vergleich die falsche Richtung hatte. Ich habs nur daran gemerkt, daß 
der Code unerwartet kleiner wurde.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren