Autor Thema: C-API: Datentyp FLOAT / NUMBER  (Gelesen 1158 mal)

Offline inu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 594
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
C-API: Datentyp FLOAT / NUMBER
« am: 21.01.11 - 16:12:24 »
Hallo Leute,

lt. C-API-Dokumentation ist doch der Datentyp FLOAT 64 bit lang:

"...The internal representation of this structure is EXACTLY the same as a 64-bit IEEE floating point number (defined by the Microsoft C compiler as "double")..."

Das selbe trifft lt. Dokumentation für den Datentyp NUMBER zu.

Jetzt habe ich in C mal folgendes probiert (64-bit-Umgebung; 64-bit-Kompilierung):

sizeof(FLOAT)
sizeof(NUMBER)

Dabei liefert ersteres einen Wert von 4 und letzteres einen Wert von 8 zurück. Kann sich das jemand erklären?

Hintergrund meiner Frage ist das Nutzen der Funktion NSFSearch (siehe http://atnotes.de/index.php/topic,50726.0.html) und der dabei angesteuerten Callbackfunktion, welche wiederum aus der DB alle Items ausliest. Als von der IBM mitgeliefertes Beispiel (samples/admin/find_dbs) wird hier u.a. folgender Quelltext verwendet:

...
#define NUMERIC_SIZE sizeof(FLOAT)
case TYPE_NUMBER:
  memcpy (&numeric_item, summary_position, NUMERIC_SIZE);
  sprintf (item_text, "%g", numeric_item);
  break;
...

Viele Grüße
David

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz