头文件の乱想

记得从最开始的时候,谭浩强老师的书上的开始就是:

#include <stdio.h>  --->standard IO  标准输入输出

我已经忘记了当时老师是怎么介绍这个头文件的了,但是过了好久我才知道了头文件的全称,才知道了standard IO

接下来再接触到的是:

#include <math.h>  #include<string.h>  

对于这些头话见名知意,话说前面的其实也是只是我自己没理解到,再接下来我有认识到的头文件是:

#include <stdlib>  --->standard Library 标准库

对于这个文件,最开始的接触是因为用到了qsort,当自己知道原来库函数提供了现成的排序函数的时候甚是兴奋,然后直接调用了,接着就是提示错误,然后才知道要导入这个头文件

在看了一些程序的命名之后,回过头来再看这些头文件的命名,突然觉得这些命名是如此的贴切

C还没学好的时候就开始不满足于C了,然后就兴冲冲的开始去了解C++,因为C++和C很像,虽然不好意思说,但是一开始的时候完全是觉得cout,cin之类函数对于C中的printf,scanf之类的来说实在是方便,用着才会知道原来两者之间的方便也是相对的,不过这是后话

然后开始导入C++的头文件

#include <iostream>   --->IO stream

using namespace std;  --->namespace std

刚开始导入的时候,对于iostream这个头文件相当的熟悉呢,大概是因为一下子就能想到IO之类的

然而对于第二行的命名空间,刚开始的时候只是知道命名空间这个概念而已,并没有去了解太多的,接下来又遇到的是各种各样的容器:

#include <vector>  #include<queue>  #include <stack>  #include <map>  ……

对于各种容器的应用,相当的方便,因为导入之后就可以用:

container<class> var

对于这种形式的声明,我仅仅是使用而已,然后开始看相对应的书籍,从中知道了容器,迭代器,模板等概念

然后开始用容器的时候,又遇到了老相识了,排序函数sort,这次的sort排序函数是在头文件

#include <algorithm>

对于这个头文件,可以知道是关于算法的头文件,那么存放的是相对应的算法,当然,当时还没看过C++ Primer,还不知道STL

这之后,看过一些代码之后,自然会对代码中的命名又有所感受,开始去了解一些名字

不同的头文件件之后又引入的别的问题

1.不同头文件之间的变量,函数的共享

2.不同头文件内的同名的变量,函数的问题

从我所了解的内容说起:

对于不同的文件中共享变量的话,可以用关键字extern来表示,static来限制变量仅限于本文件;

对于不同的头文件内的变量同名的问题,C貌似是没有办法规避的,对于C++而言则会引入命名空间的概念

从这里我开始了解命名空间的概念,这里从我经常写的开始

using namespace std

对于这个命名空间 std,当然在引入头文件的时候可以不引入命名空间的,但是还是会在下面写,主要是为了方面

=  =  =  =  =  =  =  =  =  =  =  =  =  pause  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =

时间: 2024-10-27 09:59:21

头文件の乱想的相关文章

socket头文件

一 三种类型的套接字:1.流式套接字(SOCKET_STREAM)    提供面向连接的可靠的数据传输服务.数据被看作是字节流,无长度限制.例如FTP协议就采用这种.2.数据报式套接字(SOCKET_DGRAM)    提供无连接的数据传输服务,不保证可靠性.3.原始式套接字(SOCKET_RAW)    该接口允许对较低层次协议,如IP,ICMP直接访问. 二 基本套接字系统调有有如下一些:    创建套接字: socket()    绑定本机端口: bind()    建立连接: conne

Linux网络常用头文件说明

sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构 netinet/in.h:定义数据结构sockaddr_in arpa/inet.h:提供IP地址转换函数 netdb.h:提供设置及获取域名的函数 sys/ioctl.h:提供对I/O控制的函数 sys/poll.h:提供socket等待测试机制的函数 其他在网络程序中常见的头文件 unistd.h:提供通用的文件.目录.程序及进程操作的函数 errno.h:提供错误号errno的定义,用于错误处理

linux socket网络编程 常用函数及头文件

转自:http://blog.chinaunix.net/u3/102500/showart_2065640.html 一 三种类型的套接字: 1.流式套接字(SOCKET_STREAM) 提供面向连接的可靠的数据传输服务.数据被看作是字节流,无长度限制.例如FTP协议就采用这种. 2.数据报式套接字(SOCKET_DGRAM) 提供无连接的数据传输服务,不保证可靠性. 3.原始式套接字(SOCKET_RAW) 该接口允许对较低层次协议,如IP,ICMP直接访问. 二 基本套接字系统调有有如下一

socket编程需要哪些头文件

一 三种类型的套接字:1.流式套接字(SOCKET_STREAM)    提供面向连接的可靠的数据传输服务.数据被看作是字节流,无长度限制.例如FTP协议就采用这种.2.数据报式套接字(SOCKET_DGRAM)    提供无连接的数据传输服务,不保证可靠性.3.原始式套接字(SOCKET_RAW)    该接口允许对较低层次协议,如IP,ICMP直接访问. 二 基本套接字系统调有有如下一些:    创建套接字: socket()    绑定本机端口: bind()    建立连接: conne

(转) [C++]我再也不想在任何头文件中看到using namespace xxx这种句子了(译)

原文的传送:I don’t want to see another “using namespace xxx;” in a header file ever again 转自  http://blog.csdn.net/pleasecallmewhy/article/details/8528702     在这里,我毫不回避地说了这句话. 作为一个开发者/团队领导者,我经常会去招聘新的项目成员,有时候也帮助其他组的人来面试应聘者.作为应聘流程之一,我经常要求应聘者写一些代码,因此我检查过相当多的

C语言中头文件&mdash;&mdash;你乱吗????

如果尔等之辈问本大神,为什么需要头文件呢?本大神告诉你:想要知道为什么需要头文件的话,你就应该知道C语言编译的过程: 本大神为你们准备了基本知识: C语言文件的编译与执行的四个阶段并分别描述: C++中的头文件和源文件:如何写头文件    (这个写的很好,明白) 为什么有头文件的原因:(按步骤来) 1. 在一个文件A中,如果要使用另一个文件B里的函数 sum(),那么我们就需要在文件A里面声明函数 sum();  对吧: 2. 如果在文件A 需要使用文件B里的多个函数 , 那么就需要在文件A中声

Facebook App 的头文件会有更多的收获

最近在看一些 App 架构相关的文章,也看了 Facebook 分享的两个不同时期的架构(2013 和 2014),于是就想一窥 Facebook App 的头文件,看看会不会有更多的收获,确实有,还不少.由于在选择 ipa 上的失误,下了个 7.0 版的 Facebook(最新的是 18.1),会稍有过时,不过后来又下了个 18.1 的看了下,发现变动其实不大.以下是我从头文件中获取到的一些信息(20多万行,浏览起来还是挺累的) 让视图组件可以方便地配置 这个在 Facebook 的演讲中也提

c++ 头文件包含问题-include&amp;class

http://blog.csdn.net/jiajia4336/article/details/8996254 前向声明概念(forward declaration) 在程序中引入了类类型的B.在声明之后,定义之前,类B是一个不完全类型(incompete type),即已知B是一个类型,但不知道包含哪些成员.不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数. 前向声明应用场景 当你

浅谈VC++中预编译的头文件放那里的问题分析

用C++写程序,肯定要用预编译头文件,就是那个stdafx.h.不过我一直以为只要在.cpp文件中包含stdafx.h 就使用了预编译头文件,其实不对.在VC++中,预编译头文件是指放到stdafx.h中的头文件才会有效果.如下: file: stdafx.h // stdafx.h : include file for standard system include files, // or project specific include files that are used freque