我在阅读
http://www.almostinfinite.com/memtrack.html链接的memTrack库后有一个问题
可以将__FILE__保存在类型为const char *的变量中,并且不需要使用strdup()吗? BlockHeader :: Stamp不使用strdup()来分配__FILE__字符串吗?
void BlockHeader::Stamp(char const *filename,int lineNum,char const *typeName) { myFilename = filename; // don't use strdup(filename) to assign? myLineNum = lineNum; myTypeName = typeName; }
举个例子继续描述我的问题:
//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; }
经过测试,二进制testFILE可以打印两行“testFILE.cpp”.这只是巧合吗?