c - 通用矩阵 : how to pass a type in a function argument

标签 c generics matrix

我创建了一个像这样的通用矩阵结构:

typedef struct mat_t {
  /**
   * \brief matrix structure
   */
  unsigned int c, l;
  void **matrice;
}* mat;

我的问题是学习如何为矩阵分配内存,因为它可以包含复数、 float 或其他... 因此,我想知道如何将类型传递给我的函数参数以分配内存。

mat allocate_mat(unsigned int l, unsigned int c, **<type>** )

也许,我应该为这个函数使用定义宏吗?

最佳答案

Maybe, should I use a define macro for this function ?

是的,你可以定义一个宏在最后一个参数中接受一个类型,并调用在最后一个参数中接受一个大小的真正的函数。

#define allocate_mat(MAT_L, MAT_C, MAT_TYPE) allocate_mat_sz(MAT_L, MAT_C, sizeof(MAT_TYPE))
mat allocate_mat_sz (unsigned l, unsigned c, size_t size);

关于c - 通用矩阵 : how to pass a type in a function argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16708329/

相关文章:

c++ - GLSL 330 矩阵计算错误{无编译错误}

javascript - 在 Javascript 中乘以 2 个矩阵

c - 如何在 C 中创建多维动态分配数组?

c - 从整数中提取特定位并将它们保存到 C 中的字符串中?

c - 内循环的运行时间是多少?

java - 参数化类,如何引用作为参数化类型传递的参数化类型

java - Java 中的双重泛型实例化

c - 从输入中获取特定范围的 float

java - 为什么 void method1(T obj) 不允许泛型?

c++ - 将数据推回矩阵并使用 imshow 显示该矩阵