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 Arguments
    

    Edit: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 🙂


Anmelden zum Antworten