| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6393 人关注过本帖
标题:系统头文件和自定义头文件
只看楼主 加入收藏
zhangfuhua
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-7-1
收藏
 问题点数:0 回复次数:6 
系统头文件和自定义头文件
我在一本书上看到的
如果在一个源文件里同时包含自己的头文件和系统的头文件,一般吧包含系统的头文件的命令写在前面
这样做的目的主要是为了防止本程序的局部定义影响到库文件里的定义。

请问是怎么影响的?
搜索更多相关主题的帖子: 头文件 定义 系统 局部 命令 
2008-01-12 15:38
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
收藏
得分:0 
比方你#define NULL 1的话

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-12 16:03
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
我给你举个简单的例子,实际里面会复杂的多。
加入你的my.h是这样的:
程序代码:
#ifndef  _MY_H_
#define  _MY_H_
// some code here
#define  _STDIO_H_
#endif
然后在你的my.c中这样写:
程序代码:
#include "my.h"
#include <stdio.h>

int main(int argc,  char *argv[])
{
     printf("Hello,  World.\n");
     return  0;
}
这个时候编译器会给一个警告:
my.c: In function `main':
my.c:6: warning: implicit declaration of function `printf'

printf成了隐式定义的了。至于为什么变成隐式的,这里没必要说清楚。你只需知道一点:my.h里面的#define _STDIO_H已经影响了包含的<stdio.h>. 如果你这样包含头文件就不会有警告:
#include <stdio.h>
#include "my.h"

坚决不跟用TC的人打交道!
2008-01-12 16:07
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
楼上说的第一次听说,学到东西了,呵呵
2008-01-12 16:10
zhangfuhua
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-7-1
收藏
得分:0 
MS明白了
谢谢
2008-01-14 13:04
xinghualiwei
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-1-14
收藏
得分:0 
一直只知道应该这样,
今天终于知道为什么这样了,
2008-01-14 16:41
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
原帖由 [bold][underline]zbqf109[/underline][/bold] 于 2008-1-12 16:07 发表 [url=http://bbs.bccn.net/redirect.php?goto=findpost&pid=1179050&ptid=197202][/url]
我给你举个简单的例子,实际里面会复杂的多。
加入你的my.h是这样的:#ifndef  _MY_H_
#define  _MY_H_
// some code here
#define  _STDIO_H_
#endif然后在你的my.c中这样写:#include "my.h"
#include

int main(int ar ...

能不能说一下其它复杂的原因呢,
我个人觉得,一般人不会去定义_STDIO_H_这种类型的宏
象上面的#define NULL倒是有点可能,不过我一般也用#ifdef先判断一下的

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-01-14 17:18
快速回复:系统头文件和自定义头文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015128 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved