如何在C中编写头文件

时间:2014-01-19 03:37:03

标签: c macos header-files

我是新手,我正在学习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;  
}  

enter image description here

我的环境:
操作系统:Mac OS X 10.9.1版本
编辑:vim
编译器:i686-apple-darwin11-llvm-gcc-4.2

我很遗憾添加反斜杠标志。

4 个答案:

答案 0 :(得分:5)

不需要反斜杠。如果你想评论一行,请改用“//”。

答案 1 :(得分:3)

\#define之前的反斜杠有什么用?删除它们。

答案 2 :(得分:1)

您不想在#include#define语句中逃避英镑符号。语法是

#include "header.h"

#define THING 1

另外,我不确定,但我一直认为您需要#includeconstants.h之间的空格。所以它不会是

#include"constants.h"

这将是

#include "constants.h"

我希望这是你想知道的。

答案 3 :(得分:1)

SqList ≠ Sqlist

*除非您想在代码中使用未知类型。

SqList 需要与其使用方式保持一致,否则它不相同,或者意味着相同的事情。