Объявил самоссылочную структуру в файле header.h и пытается определить ее в main.c, что вызывает ошибку - PullRequest
0 голосов
/ 15 октября 2018

"main.c"

#include "header.h"

int main()
{
    int ch;
    start = NULL;
    printf("Enter your choice:\n");
    printf("1 --> To create list\n");

    switch (ch)
    {
    case 1:
        start = create(start);
        break;
    }
}

"header.h"

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct node NODE;

struct node
{
int info;
NODE* link;
};

extern NODE *start;

NODE* create(NODE*);
  • Ошибка не определенассылка на 'start' в main, но я уже объявил его заголовочным файлом, и я даже включил файл header.h в файл main.c.

1 Ответ

0 голосов
/ 15 октября 2018

в header.h у вас есть заявлено extern NODE *start

Но определение из start не дано.

Вам нужно определить start.Обычно в каком-то .c файле.Вероятно, в main.c.

NODE *start;   //in Global space, above main() function.

Также см. этот ответ для получения дополнительной информации.

...