我不断收到很多“来自不兼容指针类型的警告”的警告,而且我还没有找到原因。
myPageFrame pageFrames[numOfFrames];
myPage pages[numOfPages];
//in a for loop
pageFrames[i].thePage = (myState == HOT ? (&pages[i]) : NULL); // one of the offenders
每当我尝试对pageFrames[i].thePage
做任何事情时,我都会收到警告。
有问题的结构是:
//algo_structs.h
typedef struct{
int pageNum;
} myPage;
typedef struct myPage{
struct myPage* thePage;
int loaded;
int lastRef;
} myPageFrame;
答案 0 :(得分:9)
myPage
和struct myPage
是不同的类型。您可以通过将struct
定义更改为:
typedef struct myPage {
int pageNum;
} myPage;
或者您可以使用myPage *
代替struct myPage *
。
答案 1 :(得分:0)
您已经定义了一个名为myPage
的类型,但您有一个类型为struct myPage
的结构成员。你需要保持一致。这是修复它的一种方法:
typedef struct myPage{
myPage* thePage;
int loaded;
int lastRef;
} myPageFrame;