我知道之前曾问过几个与我的问题类似的问题,并且我已经看过其中许多问题,但是我似乎找不到能准确回答我问题的问题。下面是我的代码的最小示例。它不太有效,对此我深表歉意。我真的不熟悉堆栈溢出和一般的编码。我正在尝试执行以下操作:
但是,当我这样做时,它将无法编译。它给出了以下错误:
make: *** [~~~~] Error 1
symbol(s) not found for architecture x86_64
其中“ ~~~~”是我程序的名称。我觉得我的问题很简单,就像必须取消引用指针之类的东西一样,但是无论我尝试什么,都行不通。任何帮助,将不胜感激。
typedef struct precinct {
int geoID;
long int neighbors[21];
double nhblength[21];
double perim;
double area;
int county;
int startdist;
int dist;
int pop;
int moe;
int nhbindex[21];
} Prec;
//prototypes
int checkAdjacency(Prec P);
int main(void)
{
Prec *SCPrec = malloc(2233 * sizeof(Prec));
/* In this space, I load in data for each precinct. For the sake of this MWE, I'll just show some of the data loaded for the first precinct */
SCPrec[0].geoID = 40351;
SCPrec[0].dist = 3;
SCPrec[0].pop = 781;
int value;
value = checkAdjacency(SCPrec[0]);
printf("%d\n",value);
return 0;
}
int checkAdjancency(Prec P)
{
if(P.dist==5)
{
return 1;
}
else return 0;
}
答案 0 :(得分:1)
您拼写错误的checkAdjacency
。
由于这个原因和其他原因,我希望避免使用前向声明,除非有必要。
int checkAdjancency(Prec P)
{
...
}
int main(void)
{
...
value = checkAdjacency(SCPrec[0]);
...
}
这给出了更清晰的错误消息。
test.c:38:13: warning: implicit declaration of function 'checkAdjacency' is invalid in C99
[-Wimplicit-function-declaration]
value = checkAdjacency(SCPrec[0]);
^
1 warning generated.