C (c coupe)
本文目录导航:
C/C++编程笔记:C言语详解 size of 运算符
C/C++编程中,size of 运算符是一个关键的概念,它用于失掉变量或数据类型在内存中的存储大小,以字节为单位。
本文详细解释了sizeof的经常使用方法、结果类型以及与其余操作符的相关,以及其在内存调配、数组元素计数等场景中的运行。
size of 是C/C++编程中无法或缺的一局部,它并非函数,而是一个单目操作符。
它经过操作其操作数,给出的是该操作数在内存中的存储占用字节数。
操作数既可以是一个数据类型(如 sizeof(int)),也可以是变量名(如 sizeof(var_name))。
在经常使用时,须要留意 sizeof 不能运行于函数类型、不齐全类型(如未知大小的数组)或位字段。
例如,尝试计算数组 max 的大小(如 sizeof(max))或未定义大小的 char_v(如 sizeof(char_v[MAX])) 都是不正确的。
sizeof 结果的类型理论是 size_t,一种无符号整型,其大小足以容纳最大对象的字节数。
在 ANSI C 规范中,char 类型占用1字节,而 int 类型理论占4字节。
关于指针,其大小取决于编译器,如在Linux中,普通为4字节。
当操作数是数组时,sizeof 前往的是数组总字节数;关于字符串,它会转化为对应类型(如 sizeof(ab) 或者转化为4字节,取决于操作系统和编译器)。
在结构和联结类型中,sizeof 区分计算最大成员和各成员总字节数,思考了对齐疑问。
size of 的优先级高于某些算术运算符,可以与其余操作符一同经常使用。
例如,i * sizeof(int) 可以计算数组元素的个数,这关于内存调配和I/O操作(如 malloc 和 fread)至关关键。
总结,了解并熟练运用 size of,能协助程序员更有效地处置内存治理和计算,优化编程效率。
假设你想粗浅对C/C++的了解,可以添加笔者的学习社区,与其余学习者一同交流提高。
群号。
ISO/OSI参考模型与TCP/IP模型的异同点
全文: OSI参考模型谈到网络不能不谈OSI参考模型,只管OSI参考模型的实践应意图义不是很大,但其确实关于了解网络协定外部的运作很有协助,也为咱们学习网络协定提供了一个很好的参考。
在事实网络环球里,TCP/IP协定栈取得了更为宽泛的运行。
1.1 OSI参考模型的分层结构OSI参考模型(OSI/RM)的全称是开明系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国内规范化组织(International Standard Organization,ISO)提出的一个网络系统互连模型。
图1-1OSI参考模型在这个OSI七层模型中,每一层都为其上一层提供服务、并为其上一层提供一个访问接口或界面。
不同主机之间的相反档次称为平等层。
如主机A中的表示层和主机B中的表示层互为平等层、主机A中的会话层和主机B中的会话层互为平等层等。
平等层之间相互通讯须要遵守必定的规则,如通讯的内容、通讯的模式,咱们将其称为协定(Protocol)。
咱们将某个主机上运转的某种协定的汇合称为协定栈。
主机正是应用这个协定栈来接纳和发送数据的。
OSI参考模型经过将协定栈划分为不同的档次,可以简化疑问的剖析、处置环节以及网络系统设计的复杂性。
OSI参考模型的提出是为了处置不同厂商、不同结构的网络产品之间互连时遇到的不兼容性疑问。
然而该模型的复杂性阻碍了其在计算机网络畛域的实践运行。
与此对照,前面咱们将要学习的TCP/IP参考模型,取得了十分宽泛的运行。
实践上,也是目前因特网范围内运转的惟逐一种协定。
1.2 OSI参考模型中各层的作用在OSI参考模型中,从下至上,每一层成功不同的、指标明白的配置。
1、物理层(Physical Layer)物理层规则了激活、维持、封锁通讯端点之间的机械个性、电气个性、配置个性以及环节个性。
该层为高层协定提供了一个传输数据的物理媒体。
在这一层,数据的单位称为比特(bit)。
属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
2、数据链路层(Data Link Layer)数据链路层在无法靠的物理介质上提供牢靠的传输。
该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
在这一层,数据的单位称为帧(frame)。
数据链路层协定的代表包括:SDLC、HDLC、PPP、STP、帧中继等。
3、网络层(Network Layer)网络层担任对子网间的数据包启动路由选用。
此外,网络层还可以成功拥塞控制、网际互连等配置。
在这一层,数据的单位称为数据包(packet)。
网络层协定的代表包括:IP、IPX、RIP、OSPF等。
4、传输层(Transport Layer)传输层是第一个端到端,即主机到主机的档次。
传输层担任将高层数据分段并提供端到端的、牢靠的或无法靠的传输。
此外,传输层还要处置端到端的过错控制和流量控制疑问。
在这一层,数据的单位称为数据段(segment)。
传输层协定的代表包括:TCP、UDP、SPX等。
5、会话层(Session Layer)会话层治理主机之间的会话进程,即担任建设、治理、中断进程之间的会话。
会话层还应用在数据中拔出校验点来成功数据的同步。
会话层协定的代表包括:NetBIOS、ZIP(AppleTalk区域消息协定)等。
6、表示层(Presentation Layer)表示层对高层数据或消息启动变换以保障一个主机运行层消息可以被另一个主机的运行程序了解。
表示层的数据转换包括数据的加密、紧缩、格局转换等。
表示层协定的代表包括:ASCII、ASN.1、JPEG、MPEG等。
7、运行层(Application Layer)运行层为操作系统或网络运行程序提供访问网络服务的接口。
运行层协定的代表包括:Telnet、FTP、HTTP、SNMP等。
1.3 OSI参考模型中的数据封装环节图1-2OSI参考模型中的数据封装环节如图1-2所示,在OSI参考模型中,当一台主机须要传送用户的数据(DATA)时,数据首先经过运行层的接口进入运行层。
在运行层,用户的数据被加上运行层的报头(Application Header,AH),构成运行层协定数据单元(Protocol>位字段数据的单位是()位
二进制