J'utilise la manière suivante pour le temps de cout fonction:Je veux tracer des journaux en utilisant un paramètre multi-macro toujours nul. problème C++ windows
#define TIME_COST(message, ...)\
char szMessageBuffer[2048] = {0};\
va_list ArgList;\
va_start(ArgList, message);\
vsprintf_s(szMessageBuffer, 2048, message, ArgList);\
va_end(ArgList); \
string strMessage(szMessageBuffer);\
CQLogTimer t(strMessage);
// CQLogTimer est une auto destructor, qui durée de vie cout de son propre et imprimer szMessageBuffer. Cependant quand j'utilise la macro ceci:
void fun
{
TIME_COST("hello->%s", filePath);
XXXXXX
}
Le message généré est toujours bonjour -> (null)
Quelqu'un peut-il aider? Merci beaucoup!
Pourquoi utilisez-vous une macro (et pourquoi utilisez des arguments variables vous)? Il y a certainement des façons plus sûres de faire de l'exploitation forestière. – sbi
parce que je veux le nettoyer en mode de libération totalement. – sxingfeng