我收到错误,该函数声明不是原型, 字段“get_current”声明为函数
但我的代码中根本没有get_current
字段。
#ifndef FILESFUNCTIONS_H_INCLUDED
#define FILESFUNCTIONS_H_INCLUDED
#define NB_MAX_TRANSITIONS 20
#define FILE_NAME_SIZE 25
typedef struct Page_Descriptor Page_Descriptor;
typedef struct Transition Transition;
typedef struct Transitions_Graph Transitions_Graph;
typedef struct File_Descriptor File_Descriptor;
typedef struct File_Descriptors_List File_Descriptors_List;
//La liste des descripteurs de fichier
struct File_Descriptors_List{
File_Descriptor* head;// Pointeur vers le premier élement de la liste.
File_Descriptor* current;
unsigned int nbFiles; // nombre de descripteurs de fichier dans la liste.
};
// La structure descripteur de fichier.
struct File_Descriptor
{
char* file_name; // Nom du fichier
Transitions_Graph* transition_graph; // le graphe de transition des pages.
File_Descriptor* next; // pointeur vers le prochaine fichier dans la liste.
};
//Le graphe des transitions
struct Transitions_Graph{
Page_Descriptor* head; // le premier noeud du graphe de transitions.
Page_Descriptor* current_page; // la dernière page utilisée dans le graphe.
};
// Le descripteur qui contient les informations sur chaque page.
struct Page_Descriptor
{
//int page_number; // Identifiant de la page
int page_offset; // Offset de la page
int nb_From_Transitions;// Le nombre des transitions à partir de cette page
int visited; //Etat de la page dans le parcours de l'affichage pour eviter le repassage sur la même page.
Transition* next_transitions;// Vecteur qui contient des pointeurs vers les pages suivantes
int index_Transition_Table;//Le nombre de pages suivantes.
};
// La definition d'une transition d'une page à une autre.
struct Transition
{
int nb_To_Transitions;//number of transitions to this page
Page_Descriptor* next_page;
};
#endif // FILESFUNCTIONS_H_INCLUDED
我不知道发生了什么,因为我在Windows上使用了codeBlocks,但在Linux中使用gcc进行编译却没有。
答案 0 :(得分:1)
在标头文件asm/current.h
中,定义了函数get_current()
,然后current
宏为#define
d:
#define current get_current()
此头文件本身是#include
头文件中的linux/sched.h
。您尚未提供#include
个文件的列表,但我怀疑您将此头文件作为#include
直接或间接提供。
您需要在程序的这一行更改current
:
File_Descriptor* current;
避免不必要的宏扩展。