5

我在文件中声明了一个 typedef 的结构。我有一个指向它的指针,并想在多个文件中将它用作全局变量。有人可以指出我做错了什么吗?

文件A.h:

typedef struct
{
  bool                  connected;
  char                  name[20];
}vehicle;

extern vehicle *myVehicle;

文件AC:

#include "fileA.h"
void myFunction(){
    myVehicle = malloc(sizeof(vehicle));
    myVehicle->connected = FALSE;
}

文件B.c:

#include "fileA.h"
void anotherFunction(){
   strcpy(myVehicle->name, "this is my car");
}

我得到的错误是:

fileA 中引用的未定义外部“myVehicle”

4

1 回答 1

12

这是一个声明

extern vehicle *myVehicle; /* extern makes this a declaration,
                              and tells the compiler there is
                              a definition elsewhere. */

添加定义

vehicle *myVehicle;

一个文件.c

于 2012-11-17T23:02:52.273 回答