1

我收到以下错误:

A1.c:1:2:错误:无效的预处理指令#inlcude
A1.c:29:错误:声明说明符中有两种或多种数据类型
A1.c:在函数“main”中:
A1.c:30:错误:不兼容赋值
A1.c 中的类型:在函数“插入”中:
A1.c:45:警告:内置函数“printf”的
隐式声明不兼容 A1.c:54:警告:内置函数“printf”的隐式声明不兼容'

对于以下代码:(请记住,目前很多变量都没有被使用,因为它不完整,需要做很多工作,但我无法编译它来测试我的代码是否有效,显然它不是 )

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

#define MAXL 100           //max Last name field length
#define MAXR 100           //max Rest field length
#define MAXM 5             //max message-string length e.g., "FIND"
#define MAXI 520           //max input line length

typedef char Last_t[MAXL];
typedef char Rest_t[MAXR];

void insert(char last[],char rest[]);

//DEFFINITION OF OUR NODE or CONTACT
typedef struct NodeTag {
   Last_t     Last;
   Rest_t     Rest;
   struct NodeTag *Link;
} Node;

//DEFINITION OF CONTACT LIST
typedef struct {
   Node *Index[26];
   Node *L;
} ContactList;

//STATIC CONTACT LIST INITIATED
static ContactList con ;

int void main () {
con.Index= NULL;
con.L = NULL;
insert( "Amir", "S");


}

//create a node and insert it to the List con of ContactList
void insert ( char last[], char rest[]) {
 Node *node, *next, *prev;
 node= malloc (sizeof(Node));
 strcpy(node->Last,last);
 strcpy(node->Rest,rest);
 if (con.L == NULL ){
   node->Link=con.L;
   con.L = node ;
  printf("Added %s %s\n",last,rest);
  }

 else {
  Node *current = con.L ;

  while(current->Link !=NULL) {
     if (current->Link == NULL) {
           current->Link = node;
           printf("Added %s %s\n",last,rest);

     }
     current = current->Link;
  }
 }

}
4

1 回答 1

0

第一行 - 这是 #include 不是 #inlcude

它怎么可能是 int void main() ?它应该是 int 或 void。

con.Index = NULL 无效。Index 是一个 const 指针,NULL 是一个 void *。同样的原因你不能做 Index++。您不能更改 Index 的值。

当您更正第 1 行时,警告应该会消失。

如果您阅读代码,所有这些都很容易纠正。你试过这样做吗?

于 2013-09-19T05:30:09.467 回答