C++ __文件可以由C+中的const char*引用+;?
在阅读了链接自的memTrack库后,我有一个问题C++ __文件可以由C+中的const char*引用+;?,c++,macros,C++,Macros,在阅读了链接自的memTrack库后,我有一个问题 \uu文件\uu是否可以保存在类型为const char*的变量中,并且不需要使用strdup()?BlockHeader::Stamp是否使用strdup()分配\uuuu文件\uuuu字符串 请举例说明我的问题: //testFILE.cpp #include <iostream> const char* getStr() { return __FILE__; }
\uu文件\uu
是否可以保存在类型为const char*
的变量中,并且不需要使用strdup()
?BlockHeader::Stamp
是否使用strdup()
分配\uuuu文件\uuuu
字符串
请举例说明我的问题:
//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.cpp
#包括
常量字符*getStr()
{
返回文件;
}
作废打印()
{
std::cout\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
在预处理时被扩展为字符串文本
const char* getStr()
{
return __FILE__;
}
在testFILE.cpp
中,就好像您编写了
const char* getStr()
{
return "testFILE.cpp";
}
适用于所有字符串文字的相同规则也适用于扩展\uuuuu文件\uuuuuu
后产生的字符串文字:它们指向的字符串在整个应用程序运行过程中都存在。\uuuu文件\uuuuuu
扩展为字符串文字。您可以存储指向(第一个字符)的指针在类型为char const*
的变量中使用字符串文本。该文本的生存期与程序执行的时间相同。谢谢。我知道了
C/C++中的字符串文本保存在静态数据段中,因此该文本的生存期与程序执行相同
我把字符串文字和局部变量搞混了
再次感谢。我强调了“永远”,因为在我看来,这是主要的审问。一个有趣的问题,祝贺你
const char* getStr()
{
return "testFILE.cpp";
}