C语言 复制过程中的铸造元素

ztyzrc3y  于 2023-02-03  发布在  其他
关注(0)|答案(1)|浏览(123)

我刚刚解决了一个C任务,现在想知道是否有一个快速的方法可以在转换数据类型的同时复制一个数组。具体来说,我有一个整数值数组,想把它复制到一个新的长整型数组中。函数memcpy只复制字节,而不考虑数据类型。我现在用一个循环解决了这个问题,想知道是否有一个更快的方法。

void myfunction(int arr_count, int* arr) {

    long long int arr_max[arr_count];
    long long int arr_min[arr_count];

    for(int j = 0;j < arr_count; j++){
        arr_max[j] = (long long int) *arr;
        arr_min[j] = (long long int) *arr;
    }
}
dw1jzc5e

dw1jzc5e1#

memcpy假设源和目标具有兼容的类型,所以它在这里不起作用。我不太清楚为什么您希望在运行时动态地更改类型-使用最合适的类型开始更明智。
话虽如此,这里的代码按照您的要求执行(除了它应该自然地表示为arr[j]),尽管严格地说,类型转换是不必要的,因为整数将在赋值过程中转换为左操作数的类型。
如果不考虑特定的系统和用例,你就无法真正地进一步优化代码,尽管如前所述,最好的优化是选择正确的类型开始,然后不要复制任何东西。

相关问题