头文件为什么加预编译语句?
typedef int ElementType;
/* START: fig3_6.txt */
#ifndef _List_H
#define _List_H
struct Node;
typedef struct Node *PtrToNode;
typedef PtrToNode List;
typedef PtrToNode Position;
List MakeEmpty( List L );
int IsEmpty( List L );
int IsLast( Position P, List L );
Position Find( ElementType X, List L );
void Delete( ElementType X, List L );
Position FindPrevious( ElementType X, List L );
void Insert( ElementType X, List L, Position P );
void DeleteList( List L );
Position Header( List L );
Position First( List L );
Position Advance( Position P );
ElementType Retrieve( Position P );
#endif /* _List_H */
/* END */
看的数据结构的例子,写的头文件里都加了预编译语句,请问到底是为什么?
------解决方案--------------------
防止头文件被多次include包含
------解决方案--------------------
引用:引用:防止头文件被多次include包含那写成这样行不?C/C++ code?1#ifndef List_H或者
C/C++ code?1#ifndef List
一个宏名,爱怎么写怎么写
------解决方案--------------------
嗯,反正是定义一个宏,随便取名啊。从可阅读性来讲,不过最好还是跟文件里定义的相关,好让人一眼看得出来是什么意思
------解决方案--------------------
宏名一般取为头文件名的大写 带上下划线
比如 head.h
一般写成:
#ifndef _HEAD_H_ //如果没有定义该宏
#define _HEAD_H_ //定义该宏,并一直运行到endif,如果已经定义,则不运行该头文件
#endif