#include <stdio.h>
typedef unsigned int int_array4_type[4];
void test_array(int_array4_type k)
{
for(int j=0; j<4; j++)
{
k[j] = 1;
}
}
int main()
{
int_array4_type a[10];
for(int i=0; i<10; i++)
{
test_array(a[i]);
}
for(int i=0; i<10; i++)
{
for(int j=0; j<4; j++)
{
printf("%d\n", a[i][j]);
}
}
return 0;
}
数组类型定义:typedef unsigned int int_array4_type[4];
定义了4个元素的int数组,之后可以使用int_array4_type定义该类型的变量。
题外话,这个技巧可以用在OpenCL cts ./test_conformance/vectors porting到CUDA/HIP上,将数组类型变量作为类模板参数类型传入。