【发布时间】:2017-03-24 02:38:22
【问题描述】:
我有 func() 必须采用 unsigned int 参数。
void func(unsigned int 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?为什么将printf用于 C++ 代码?为什么你把它标记为 C? -
这听起来像an XY problem。
-
传递一个char数组的地址如下:
DoSomething(&charArray);除此之外,我不知道你在问什么?