#define - Problem

Endurion hat gesagt.:
Ein beliebige Anzahl an Parametern würde so aussehen:

Code:
const char* MeinPrintf( const char* lpszFormat, ... )
{

  static char         szMiscBuffer[3000];

  vsprintf( szMiscBuffer, lpszFormat, (char *)( &lpszFormat + 1 ) );

  return szMiscBuffer;

}

Achtung, der Code prüft nichts und kann Fehler produzieren, wenn man nicht aufpasst. Zum einen max. 3000 Zeichen in einer Zeile. Zum anderen kannst du bei falschen Parametern (std::string direkt) richtig schön auf die Schnauze fallen. Und verschachteln geht auch nicht.

Aber einfacher zu formatieren als die std::streams isses :)


Nachtrag: Defines haben ihren Platz, aber was du da machst, ist keiner davon.

Ah ich habe jetzt was neues raus gefunden :) Unter C geht das so:

Code:
#include <tchar.h>
void Funktion(TCHAR *szFormat, ...)
{
  va_list pArgList;;
  TCHAR newtext[SNA_TCHARPUFFER];
  
  va_start (pArgList,szFormat);
    vsprintf(newtext,szFormat,pArgList);
  va_end (pArgList);
 
Zurück