Double gemoppelt?

Diskussionen zu Tutorials, Änderungs- und Erweiterungswünsche
Antworten
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Double gemoppelt?

Beitrag von Xin » Di Jul 20, 2010 12:16 am

http://proggen.org/doku.php?id=theory:t ... =revisions

@nufan: Wieso klammerst Du double(x) zu (double)(x)?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Double gemoppelt?

Beitrag von nufan » Di Jul 20, 2010 1:10 pm

Xin hat geschrieben:@nufan: Wieso klammerst Du double(x) zu (double)(x)?
Ich habe nicht gewusst, dass man Casts auch ohne Klammern schreiben kann - und gcc stimmt mir zu :)

Hier ein Beispiel das im Prinzip das selbe macht wie jenes im Wiki:

Code: Alles auswählen

#include <stdio.h>

int main()
{

  int start = 10, end = 2, freq = 5;
  double result = double (start - end) / double (freq);   // Zeile 7
  
  printf ("%lf\n", result);

  return 0;

}
Produziert folgenden Fehler:
main.c:7: error: expected expression before ‘double’
Folgendes funktioniert wie es soll:

Code: Alles auswählen

double result = (double) (start - end) / (double) freq;

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Double gemoppelt?

Beitrag von Xin » Di Jul 20, 2010 2:01 pm

nufan hat geschrieben:
Xin hat geschrieben:@nufan: Wieso klammerst Du double(x) zu (double)(x)?
Ich habe nicht gewusst, dass man Casts auch ohne Klammern schreiben kann - und gcc stimmt mir zu :)
Frag mal g++ ^^
nufan hat geschrieben:Produziert folgenden Fehler:
main.c:7: error: expected expression before ‘double’
Folgendes funktioniert wie es soll:

Code: Alles auswählen

double result = (double) (start - end) / (double) freq;
Ich habe es nicht mehr geändert, weil double(x) ein C++-Cast ist (Konstruktor von double wird gerufen), und (double)x ein old-fashioned-c-style-cast, also pöse - aber dafür funktioniert er halt auch unter C... was unbestritten auch ein Vorteil sein kann.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten