在C中将long转换为char * const的正确方法是什么?
编辑:
long l = pthread_self();
ThirdPartyFunction("Thread_Id_"+l); //Need to do this
ThirdPartyFunction(char* const identifierString)
{}
编辑:
在C中将整数转换为字符串的“正确”方法是使用字符串流.例如:
#include
std::ostringstream oss;
oss << "Thread_Id_" << l;
ThirdPartyFunction(oss.str().c_str());
现在,这可能不是“最快”的方式(流有一些开销),但它简单,可读,更重要的是,安全.
以下老答案
取决于你的意思“转换”.
要将long的内容转换为指针:
char * const p = reinterpret_cast(your_long);
要“看到”长长的一系列字符:
char * const p = reinterpret_cast(&your_long);
要将long转换为字符串:
std::ostringstream oss;
oss << your_long;
std::string str = oss.str();
// optionaly:
char * const p = str.c_str();