刷新
逍遥自在学C语言 | for循环详解

博主头像 ## 前言 C语言中的循环结构时,`for`循环是最常用的一种。它允许重复执行一段代码,直到满足特定条件为止。 本文将详细介绍`for`循环的用法,并提供相关的可编译运行的C代码示例。 ## 一、人物简介 - 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 ![](https://i ...

驱动开发:内核实现SSDT挂钩与摘钩

博主头像 在前面的文章`《驱动开发:内核解析PE结构导出表》`中我们封装了两个函数`KernelMapFile()`函数可用来读取内核文件,`GetAddressFromFunction()`函数可用来在导出表中寻找指定函数的导出地址,本章将以此为基础实现对特定`SSDT`函数的`Hook`挂钩操作,与`《驱... ...

基于ESP32的TCP/IP传输实现

博主头像 #TCP/IP协议原理 TCP/IP协议是Internet互联网最基本的协议,TCP/IP协议的应用层的主要协议有HTTP、Telnet、FTP、SMTP等,是用来读取来自传输层的数据或者将数据传输写入传输层;传输层的主要协议有UDP、TCP,实现端对端的数据传输;网络层的主要协议有ICMP、IP、 ...

驱动开发:内核PE结构VA与FOA转换

博主头像 本章将继续探索内核中解析PE文件的相关内容,PE文件中FOA与VA,RVA之间的转换也是很重要的,所谓的FOA是文件中的地址,VA则是内存装入后的虚拟地址,RVA是内存基址与当前地址的相对偏移,本章还是需要用到`《驱动开发:内核解析PE结构导出表》`中所封装的`KernelMapFile()`映射函... ...

驱动开发:内核读写内存浮点数

博主头像 如前所述,在前几章内容中笔者简单介绍了`内存读写`的基本实现方式,这其中包括了`CR3切换`读写,`MDL映射`读写,`内存拷贝`读写,本章将在如前所述的读写函数进一步封装,并以此来实现驱动读写内存浮点数的目的。内存`浮点数`的读写依赖于`读写内存字节`的实现,因为浮点数本质上也可以看作是一个字节集... ...

【lwip】13-TCP协议分析之源码篇

博主头像 ## 前言 TCP源码篇,当前只分析TCP层的源码实现,按功能分块分析,接口为RAW接口。 NETCONN接口和SOCKET接口会独立一篇文章进行分析。 本文基于读者已学习了TCP协议原理篇的基础上进行源码分析,不再在此篇文章中过多解析TCP相关概念。 ‍ 建议读者对着LWIP库源码进行阅读。对于初 ...

FreeSWITCH添加自定义endpoint

博主头像 操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 日常开发过程中会遇到需要扩展FreeSWITCH对接其它系统的情况,这里记录下编写FreeSWITCH自定义endpoint的过程。 一、模块定义函数 使用FreeSWITCH自带的框架来定义模块函数,函数指针及参数 ...

C访问数据对象在内存中的位模式

博主头像 在判定机器采用大端还是小端存储时,可以按字节输出某数据对象的机器表示的位模式。机器表示的位模式即某数据对象在内存中的二进制串。下面是访问数据对象位模式的一个方法: //传入一个数据对象,从低地址到高地址按字节输出这个对象的每字节的十六进制表示 void printByte(unsigned char ...

位段/位域 的使用

在一些特定的应用场景中,需要对一个整数类型的变量中的每个位进行单独的控制或访问。例如,硬件寄存器常常包含一些特定的位用于表示设备的状态、配置选项或标志位。使用位段区可以使程序员更方便地访问和控制这些位,而无需进行位运算或掩码操作。(类似于位寻址?) 位段区使用特定的语法来定义和操作位段。在C语言中, ...

UNIX网络编程:socket实现client/server通信

博主头像 ## 一、问题引入 阅读**UNIX网络编程 卷1:套接字联网API 第3版**的前4个章节,觉得有必要对书籍上的源码案例进行复现,并推敲TCP的C/S通信过程。 ## 二、解决过程 ### 2-1 server 代码 ```c #include #include #include #include ...

逍遥自在学C语言 | 条件控制的正确使用姿势

博主头像 前言 在C语言中,有三种条件判断结构:if语句、if-else语句和switch语句。 一、人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 二、if语句 基本语法 if (条件) { // 代码块1 } 代码示例 #i ...

C语言快速入门教程1快速入门 2指令 3条件选择

## 1快速入门 ### 什么是C语言? C是一种编程语言,1972年由Dennis Ritchie在美国AT & T的贝尔实验室开发。C语言变得很流行,因为它很简单,很容易使用。今天经常听到的一个观点是--"C语言已经被C++、Python和Java等语言所取代,所以今天何必再去学习C语言"。我很 ...

1分钟了解C语言正确使用字节对齐及#pragma pack的方法

博主头像 ​ C/C++编译器的缺省字节对齐方式为自然对界。即在缺省情况下,编译器为每一个变量或是数据单元按其自然对界条件分配空间。 在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储(成员之间可能有插入的空字节),第一个成员的地址和整 ...

希望所有计算机学生能看到这篇c语言教程

博主头像 大部分程序员走入编程世界第一个学习的语言就是C语言。 作为一门古老的编程语言,c语言拥有48年的发展历程。 为什么要学习 C语言? C语言是学习计算机程序设计语言的入门语言。最全面的编程面试网站 C语言是一门偏底层的语言,学好它,可以让你更好的了解计算机。 学会了C语言,你就能学习现在任何的高级编程 ...

FFmpeg开发笔记(二)搭建Windows系统的开发环境

博主头像 由于Linux系统比较专业,个人电脑很少安装Linux,反而大都安装Windows系统,因此提高了FFmpeg的学习门槛,毕竟在Windows系统搭建FFmpeg的开发环境还是比较麻烦的。不过若有已经编译好的Windows版本FFmpeg开发包,那就免去了繁琐的Windows编译过程,所以直接安装已 ...

<1···910