C中文件包含的一些认识
来源:互联网 发布:java编程思想有第5版吗 编辑:程序博客网 时间:2024/06/05 17:36
今天,在设计C代码的时候,想到了一点,想让B包含A,并自由使用A的头文件,但是却不想让包含B的C使用A,让A没有权限直接使用使用C……如下图:
不知道应该怎么办。当时心想,如果是C++,使用继承,很灵活就能搞定这些事
跟同事商量了一下,对方给出了一种方法:用B的源文件进行包含A的头文件,然后在用C的头文件包含B的头文件,这样子就OK了……有点百思不得其解。网上查询了一下资料,发现自己对于源文件,头文件,以及文件包含上的一些认识,还存在许多不足。自己总结了一下,顺便标记一二
大部分人认识存在一个误区,以为写代码,必须要包含头文件以及源文件,但是其实是必要的。必要的只是源文件。一般来说,源文件(.c,.cpp)会被编译器编译生成模块。而头文件只是一个文本文件,#include这个预编译命令将这个文本文件插入到这个指令得位置。在源文件中使用#include包含一个头文件,那就相当于把头文件直接拷贝到了原文件中。
而其他得文件,想使用你这个源文件中得内容,那么你就必须要引用声明(extern):
extern int b_max(int a , int b);
但是,不能忘记,在C中有规定,extern其实可以不用书写,默认的是extern,所以有了以下得形式的声明:
int b_max(int a , int b);
如果说这个源文件需要,假如是a.cpp中提供了很多函数的外部接口,为了方便起见,我们把这些声明统一放置在一个文件中,这就是头文件的由来
对于自己来讲,非常重要的一点就是:包含了头文件,其实是将一些函数给引入进来,那么引入以后,我就可以使用头文件中所规定的接口。没别的,跟头文件中其他得内容无关
当然,头文件可能会被包含了N次,但是实际上我们只需要对他进行编译一次就够了,因此#ifndef来让头文件放置被重复包含,就是非常必要得了
- C中文件包含的一些认识
- 关于c中文件包含和文件工程的意思
- PHP中文件包含语句的区别
- C语言中文件包含#include使用尖括号和双引号的区别
- C中文件的操作。。。。
- C++中文件操作的一些函数
- java中文件的一些处理
- C++ 中文件包含问题
- C语言中文件的研究(二) 一些常用命令的小结
- 对C++中文件输出流成员函数的认识
- VC中文件包含时,尖括号和双引号的区别
- 关于C语言中文件操作的一些知识(小白刚体验)
- 关于C中文件操作的问题
- c语言中文件的操作
- C语言中文件的操作
- C语言中文件的读写
- C/C++中文件的读写格式
- C/C++中文件的读写格式
- 离别
- linux命令的学习笔记
- 曾经碰到的面试题目
- 超经典智力面试题
- 申论写作方法
- C中文件包含的一些认识
- 请高手们给点学MFC的建议
- BlackBerry代码签名工具申请及安装介绍
- 像写Windows程序那样写单片机程序之多任务定时器
- 在北京注册科技类公司的经历(完):总结
- 单元测试之道(使用NUnit)
- 《转》一篇故事讲述了计算机网络里的基本概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等...
- 一个出轨男人与佛的对话 ,说的很有道理......
- 如何从单行提取成多行(TSQL)?