2016-11-11 2 views
4

Ich habe festgestellt, dass die Größe von int und double sich von denen unterscheidet, die mit der Funktion MPI_Type_size berechnet werden (MPI_INT, & MPI_INT_SIZE); Bedeutet das, dass sizeof (MPI_INT) den falschen Wert von 8 ?? die es normalerweise 4 Vielen Dank für Ihre Antwort solltesizeof (MPI_INT) unterscheidet sich von sizeof (int)

Antwort

6

MPI_INT ist ein MPI Griff. Es wird verwendet, um MPI mitzuteilen, dass der Speicherinhalt als int behandelt wird, wenn während des Sendens einer Nachricht gelesen oder geschrieben wird, während eine Nachricht empfangen wird. Es ist nicht ein Sprache-Datentyp und kann nicht zum Deklarieren von Variablen verwendet werden. Die Verwendung des size-of-Operators auf einem MPI-Handle ist falsch, da es die Größe des Handle selbst angibt und nicht die Größe des zugrunde liegenden Datentyps. MPI-Handles sind entweder ganzzahlige Indizes in eine Tabelle von MPI-Objekten, in welchem ​​Fall die size-of dieses Handle sizeof(int) oder ein Zeiger auf eine undurchsichtige Datenstruktur ist, in diesem Fall wird die Größesizeof(void *) sein. Bei einem typischen LP64-System sind dies 4 Bytes bzw. 8 Bytes.

Das gleiche gilt für alle anderen vordefinierten MPI-Datentyp-Handle, wie MPI_FLOAT, MPI_DOUBLE, MPI_CHAR, und so weiter.

+0

Danke, Sir, habe es ... – BatiCode

+2

@DrJ: Dann bitte markieren Sie die Antwort als akzeptiert, damit wir zukünftige Duplikate hier routen können. –