我收到以下错误:
A1.c:1:2:错误:预处理指令无效#inlcude
A1.c:29:错误:声明说明符中的两个或多个数据类型
A1.c:功能'main':
A1.c:30:错误:分配中不兼容的类型
A1.c:在函数'insert'中:
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;
}
}
}
答案 0 :(得分:0)
第一行 - #include NOT #inlcude
怎么可能是int void main()?它应该是int或void。
con.Index = NULL无效。 Index是一个const指针,NULL是一个void *。同样的原因你不能做Index ++。您无法更改索引的值。
当您纠正第1行时,警告应该消失。
如果您阅读了代码,所有这些都很容易纠正。你试过这样做吗?