Frage zu drei Punkten:
-
Was bedeuten die 3 Punkte in der Methodendeklaration?
GLvoid glPrint(const char *fmt, ...) // Was bedeuten die 3 Punkte hier? { float length=0; // Used To Find The Length Of The Text char text[256]; // Holds Our String va_list ap; // Pointer To List Of Arguments if (fmt == NULL) // If There's No Text return; // Do Nothing va_start(ap, fmt); // Parses The String For Variables vsprintf_s(text, fmt, ap); // And Converts Symbols To Actual Numbers va_end(ap); // Results Are Stored In Text for (unsigned int loop=0;loop<(strlen(text));loop++) // Loop To Find Text Length { length+=gmf[text[loop]].gmfCellIncX; // Increase Length By Each Characters Width } glTranslatef(-length/2,0.0f,0.0f); // Center Our Text On The Screen glPushAttrib(GL_LIST_BIT); // Pushes The Display List Bits glListBase(base); // Sets The Base Character to 0 glCallLists((GLsizei)strlen(text), GL_UNSIGNED_BYTE, text); // Draws The Display List Text glPopAttrib(); // Pops The Display List Bits }
-
Bei diesen 3 Punkten handelt es sich um eine variable Argumentenliste, kennst du vielleicht aus Funktionen ala wsprintf wo man noch weitere Variablen übergeben kann.
-
Und wie wird dann auf die Liste zugegriffen und was passiert in dieser Methode konkret mit diesen Angaben der Argumentenliste?
(so ganz verstehe ich die Methode nicht)
-
MisterX schrieb:
Und wie wird dann auf die Liste zugegriffen und was passiert in dieser Methode konkret mit diesen Angaben der Argumentenliste?
(so ganz verstehe ich die Methode nicht)Du kannst Englisch nehm ich mal an, nicht wahr?
Falls nicht, hier ein kleiner Hinweis:
va_list ap; // Pointer To List Of ArgumentsEdit:Ahja und mal ganz ehrlich, die Kommentare sind doch schon mehr als genug Hilfe...
-
BTW: dieses "..." wird in C++ als "ellipsis" bezeichnet. Habe allerdings noch nicht rausbekommen wieso
