www.mikrocontroller.net

Forum: Compiler & IDEs Vergleiche in C


Autor: flyingwolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
wie baut man eigentlich in C ordentliche Vergleiche zusammen?
Beispiel
x <= y <= z
geht das besser als
if ((x <= y) && (y <= z)) ... ?

Wie sieht das bei einem Trend aus, also z.B. wenn 4 von 6 Messwerten 
größer sein sollen als der vorhergehende Wert?


Gibt es in c auch durchnummerierte Variable?
Also z.b.

int messwert1, meswert2, messwert3;
int zaehler;

while (zaehler < 3)
{
if (messwert[zaehler] <= messwert[zaehler + 1]) ....
zeahler++;
}

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> geht das besser als
> if ((x <= y) && (y <= z)) ... ?

Was verstehst du unter "besser"? Kürzer kann man es jedenfalls nicht 
schreiben.

> Wie sieht das bei einem Trend aus, also z.B. wenn 4 von 6 Messwerten
> größer sein sollen als der vorhergehende Wert?

Das würde ich in einer Schleife schreiben.

> Gibt es in c auch durchnummerierte Variable?
> Also z.b.
>
> int messwert1, meswert2, messwert3;
> int zaehler;

zaehler erhält hier irgendeinen undefinierten Wert.

> while (zaehler < 3)
> {
> if (messwert[zaehler] <= messwert[zaehler + 1]) ....
> zeahler++;
> }

Ja, gibt es, aber man schreibt die Definition so:
  int messwert[3];

Allerdings fängt der Index bei 0 an.

Autor: Lötlackl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>wie baut man eigentlich in C ordentliche Vergleiche zusammen?
>>Beispiel
>>x <= y <= z
>>geht das besser als
>>if ((x <= y) && (y <= z)) ... ?

>>Wie sieht das bei einem Trend aus, also z.B. wenn 4 von 6 Messwerten
>>größer sein sollen als der vorhergehende Wert?

??

>>Gibt es in c auch durchnummerierte Variable?
>>Also z.b.
>>
>>int messwert1, meswert2, messwert3;
>>int zaehler;
>>
>>while (zaehler < 3)
>>{
>>if (messwert[zaehler] <= messwert[zaehler + 1]) ....
>>zeahler++;
>>}

Ja, gibt es, nennt sich "Array". Wird folgendermaßen deklariert.
int messwert[3]; // Array mit 3 Elementen
int zaehler = 0;
while (zaehler < 3)
{
if (messwert[zaehler] <= /* lieber nicht "messwert[zaehler + 1])", so kann man leicht Werte jenseits der definierten Arraygröße erwischen */ wasweißich...){...}
zaehler++;
}

mfg Lötlackl

Autor: CCCCC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Gibt es in c auch durchnummerierte Variable?
>> Also z.b.
>>
>> int messwert1, meswert2, messwert3;
>> int zaehler;

> zaehler erhält hier irgendeinen undefinierten Wert.
aber nicht im debug modus

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> zaehler erhält hier irgendeinen undefinierten Wert.
> aber nicht im debug modus

In Standard-C++ gibt es keinen "debug modus". Und eigentlich hoffe ich, 
daß nicht jeder Compiler so blöd implementiert ist. Es ist nämlich 
ziemlich nervig, wenn man einen Fehler im Programm hat, der im 
Debug-Modus nicht auftritt, weil der Compiler dort irgendwelche 
eigenmächtigen Initialisierungen durchführt.

Autor: flyingwolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also dass man Variablen vor deren Verwendung einen Wert zuweisen muss 
war früher immer so drum mache ich das auch heute nicht anders. ich habe 
es oben der Einfachheit halber weggelassen.
Danke für die Tips.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
flyingwolf wrote:

> also dass man Variablen vor deren Verwendung einen Wert zuweisen muss
> war früher immer so drum mache ich das auch heute nicht anders.

Diese Pauschalaussage war zumindest für C sowohl früher schon falsch
und ist es auch heute noch.

Variablen mit statischer Speicherplatzvergabe werden auf 0 (oder 0.0
oder NULL) initialisiert.  Das ist vom Standard so vorgegeben und
damit eine Eigenschaft der Sprache, auf die man sich genauso verlassen
kann und darf wie darauf, dass 1 / 2 = 0 ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.