读书人

头文件为啥加预编译语句

发布时间: 2013-04-20 19:43:01 作者: rapoo

头文件为什么加预编译语句?

  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

读书人网 >C语言

热点推荐