宏定义求数组的最大维数
定义一个宏 DIM(a)int a[10];
int b[4][5];
double c[7][9][4];
调用宏后结果
DIM(a) = 10;
DIM(b) = 5;
DIM(c) = 9;
也就是算出多维数组里面维度最大的那个值 并且数组类型不确定
#include<iostream> using namespace std; #define DIM(array) func(array) template<class T, int size> int func(const T(&a)[size]) { return size > func(a[0]) ? size : func(a[0]); } int func(...) { return 0; } int main() { int a[10]; char b[4][5]; double c[7][9][4]; cout <<DIM(a) <<endl; cout <<DIM(b) <<endl; cout <<DIM(c) <<endl; return 0; }