4

我收到错误消息:错误:只能为我的头文件中的对象和函数结构指定存储类..

/*
 * stud.h
 *
 *  Created on: 12.11.2013
 *      Author: 
 */

//stud.h: Definition der Datenstruktur Stud
#ifndef _STUD_H
#define _STUD_H


struct Stud{
        long matrnr;
        char vorname[30];
        char name[30];
        char datum[30];
        float note;
    };

extern Stud mystud[];

int einlesen (struct Stud[]);
void bubbleSort(struct Stud[] , int );
void ausgeben(struct Stud[], int);

#endif

问题出在哪里?

4

1 回答 1

3

我会说你的问题是

extern Stud mystud[];

它可能应该更改为更像

extern struct Stud* mystud;

然后在此标头的实现文件中:

struct Stud stud_storage[SIZE];
struct Stud* mystud = stud_storage;

我认为您可能会使用某些编译器来逃避extern struct Stud mystud[];声明,这些编译器将始终在内部将其转换为相应的指针类型,但并非所有编译器都可以(需要仔细检查我的 ANSI 标准(C89)以确保,但只允许转换按照函数声明和定义中的标准而不是变量声明。)

于 2013-11-12T17:30:08.623 回答