我有func(),它必須採用unsigned int參數。C++在64位平臺中傳遞char數組地址
存在用於空隙FUNC(無符號整數val)將原因,
我必須通過各種型(無符號字符,無符號短,無符號整型)至FUNC參數。
我必須將char數組傳遞給func(),我現在的解決方案就像下面的代碼。
編輯:有沒有簡單的方法在64位平臺上移植此代碼?
char test_str[128] = { 0 };
void func(unsigned int val)
{
memcpy(test_str, (char *)val, 128); //current my solution
printf("%s\n", test_str);
}
int main()
{
char str[128] = "hello world";
func((unsigned int)(char *)&str); //current my solution
return 0;
}
注:使用intptr_t
這是C++嗎?當我看到很多演員時,通常表示程序員做錯了 –
函數必須有unsigned int,我應該將其更改爲模板嗎? – sailfish009
爲什麼它應該有一個'unsigned int'?爲什麼在C++代碼中使用'printf'?你爲什麼把它標記爲C? –