【发布时间】:2013-12-16 09:13:13
【问题描述】:
我想创建一个 C 宏,为输入中的任何类型的静态数组返回标量最小值。例如:
float A[100];
int B[10][10];
// [...]
float minA = MACRO_MIN(A);
int minB = MACRO_MIN(B);
我该怎么做?
【问题讨论】:
-
不,你不能,你为什么还要呢?如果您想要这种功能,请使用 C++。
-
您需要的不仅仅是数组作为宏的参数,例如元素的类型和数量。
-
对于简单的数组,这应该是相当简单的。但我认为你不能为多维数组做到这一点,因为你不能“重载”宏。
-
谢谢你,Kerrek,Eregrith。你完全理解我的问题:一维数组应该是可能的,问题是,确实,是否可以在没有更多参数的情况下创建这样的宏。
-
查看this question on pseudo-generics in C。它与您的问题具有相似的目标,并且其中一些答案很有启发性。
标签: c c99 c-preprocessor