LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1122|回复: 4

一个关于C的总是

[复制链接]
发表于 2003-10-11 09:50:43 | 显示全部楼层 |阅读模式
C初学者,下面弄了段程序,可是编译时出错,不知道.h应如何处理。

主程序:game.c
.h文件,放在game.c同文件夹下:deck.h

编译时,我老说deck.h不存在!

另外,deck.h中的#ifndef DECK_H一句是什么意思?
--------------------------------------------------------------------
game.c:

#include <stdio.h>
#include <deck.h>
int main()
{
deck_t deck;
printf("Hello World!\n");
}



-----------------------------------------------------------------------
deck.h:

#ifndef DECK_H
#define DECK_H
#define DECKSIZE 52
typedef struct deck_t
{
int card[DECKSIZE];
int dealt;
}deck_t;
endif
发表于 2003-10-11 15:22:00 | 显示全部楼层
应该是 #include "deck.h" 吧
发表于 2003-10-11 15:24:23 | 显示全部楼层

回复: 一个关于C的总是

最初由 moxnet 发表

#include <deck.h>


#include "deck.h"
 楼主| 发表于 2003-10-11 19:20:12 | 显示全部楼层
<deck.h>和"deck.h"不是等效的吗?

在turborC中好象是这样的,在GCC中不一样啦?
发表于 2003-10-12 16:33:43 | 显示全部楼层
不一样。
<> 先在系统目录( 就是设置的include目录,linux 下一般在 /usr/include )中查找;而 "" 则是先在工程所在的目录中寻找。
对于标准库,第三方库等,一般用<>。
对于同一个工程中的其他头文件,如自己写的头文件用""。

“放在game.c同文件夹下:deck.h”
既然放在同一目录下,直接用 include "deck.h" 包含就可以了,如果存在当前目录的子目录,如 headfiles, 改成 "headfiles/deck.h"。

每一本介绍 c 语言的书都会事先讲到如何包含头文件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表