Ich habe eine Frage nach__FILE__ kann durch const char * in C++ bezeichnet werden?
von http://www.almostinfinite.com/memtrack.html verknüpft memTrack Bibliothek zu lesen Kann __FILE__
mit Typ const char*
immer in einer Variablen gespeichert werden und muß nicht strdup()
benutzen? Verwendet BlockHeader::Stamp
nicht strdup()
, um die __FILE__
Zeichenfolge zuzuweisen?
void BlockHeader::Stamp(char const *filename, int lineNum, char const *typeName)
{
myFilename = filename; // don't use strdup(filename) to assign?
myLineNum = lineNum;
myTypeName = typeName;
}
ein Beispiel geben, meine Frage weiter zu beschreiben:
//testFILE.cpp
#include <iostream>
const char* getStr()
{
return __FILE__;
}
void Print()
{
std::cout << __FILE__ << std::endl;
}
int main()
{
std::cout << getStr() << std::endl;
Print();
return 0;
}
nach dem Test, der binäre testdat zwei Zeilen "testFILE.cpp" drucken. Ist es nur Zufall?
Ich habe das _ ** für immer ** _ betont, wie es mir die Hauptvernehmung aussieht. – YSC
Eine interessante Frage, herzlichen Glückwunsch – Dean