我是新手,我正在学习C语言。编译以下代码时出现错误。
Constans.h
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OK 1
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
ArrayList.h
#include"Constans.h"
#define LIST_INIT_SIZE 100
#define LIST_INCREMENT 20
typedef struct{
int *elem;
int length;
int listsize;
}SqList;
extern Status InitList_sq(Sqlist *l);
extern Status ListInsert_sq(Sqlist *l,int i,int e);
extern Status ListDelete_sq(Sqlist *l,int i,int *e);
extern void MergeList_sq(Sqlist La,Sqlist Lb,Sqlist *Lc);
extern void ListTraverse(Sqlist l,void(*visit)(void));
program.c
#include<stdio.h>
#include "ArrayList.h"
int main(){
return 0;
}
我的环境:
操作系统:Mac OS X 10.9.1版本
编辑:vim
编译器:i686-apple-darwin11-llvm-gcc-4.2
我很遗憾添加反斜杠标志。
答案 0 :(得分:5)
不需要反斜杠。如果你想评论一行,请改用“//”。
答案 1 :(得分:3)
\#define
之前的反斜杠有什么用?删除它们。
答案 2 :(得分:1)
您不想在#include
和#define
语句中逃避英镑符号。语法是
#include "header.h"
#define THING 1
另外,我不确定,但我一直认为您需要#include
和constants.h
之间的空格。所以它不会是
#include"constants.h"
这将是
#include "constants.h"
我希望这是你想知道的。
答案 3 :(得分:1)
SqList ≠ Sqlist
*除非您想在代码中使用未知类型。
SqList 需要与其使用方式保持一致,否则它不相同,或者意味着相同的事情。