【发布时间】:2015-04-11 15:25:22
【问题描述】:
我有 2 个 .c 文件,adj.c 和 main.c。 我尝试做的是在 adj.c 中定义
#define N 12
typedef int adj_mat[N]
并在 main.c 中将此 typedef 用作二维数组 我试着这样定义,
adj_mat mat[N];
我的程序中有一个函数用零填充这个矩阵,定义如下:
void fill_mat_zero(adj_mat);
我的问题是,如果我用 Visual Studio 运行这个程序就没有问题, 但是如果我尝试在 Ubuntu 中编译它,它会显示一个错误,如下所示: 注意:预期为“int ”,但参数类型为“int ()[12]”
这里有什么问题? typedef 的定义不正确? 有没有办法将一个adn_mat[N] 数组定义为typedef,然后将其用作多维数组?
谢谢。
【问题讨论】:
-
#define和typedef应该在adj.h中吗?
标签: c multidimensional-array typedef