指针, C语言的精髓
摘要:指针, C语言的精髓 指针, C语言的精髓 莫队先咕几天, 容我先讲完树剖 (因为后面树上的东西好多都要用树剖求 LCA, 树剖求 LCA 比倍增求 LCA 常数小). 什么是指针 保存变量地址的变量叫做指针. 这是大概的定义, 但是Defad认为这个定义不太好理解, 所以我们先不看. 我们的电脑里
阅读全文
P/Invoke之C#调用DLL
摘要:P/Invoke之C#调用动态链接库DLL 本编所涉及到的工具以及框架: 1、Visual Studio 2022 2、.net 6.0 P/Invok是什么? P/Invoke全称为Platform Invoke(平台调用),其实际上就是一种函数调用机制,通过P/Invoke就可以实现调用非托管D
阅读全文
C 语言是一门抽象的、面向过程的语言,C 语言广泛应用于底层开发
摘要:C 语言基础,来喽! 前言 C 语言是一门抽象的、面向过程的语言,C 语言广泛应用于底层开发,C 语言在计算机体系中占据着不可替代的作用,可以说 C 语言是编程的基础,也就是说,不管你学习任何语言,都应该把 C 语言放在首先要学的位置上。下面这张图更好的说明 C 语言的重要性 可以看到,C 语言是一
阅读全文
C语言指针
摘要:转载C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻 一、前言 如果问C语言中最重要、威力最大的概念是什么,答案必将是指针!威力大,意味着使用方便、高效,同时也意味着语法复杂、容易出错。指针用的好,可以极大的提高代码执行效率、节约系统资源;如果用的不好,程序中将会充满陷阱、漏洞。 这篇文章
阅读全文
C语言中指针在应用程序的编程中,经常使用的技巧
摘要:推荐阅读 [1] C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻[2] 一步步分析-如何用C实现面向对象编程[3] 原来gdb的底层调试原理这么简单[4] 生产者和消费者模式中的双缓冲技术[5] 关于加密、证书的那些事[6] 深入LUA脚本语言,让你彻底明白调试原理[7] 一个print
阅读全文
The C Programming Language-Chapter 5 Pointers and Arrays
摘要:数组、函数与指针 参考 The C Programming Language-Chapter 5 Pointers and Arrays 前言 在上一篇文章动态数组(一维二维)探秘介绍了数组的一些知识,在最后碰到了一个如何申请二位数组的问题,这篇文章就延伸一下,介绍介绍数组、函数和指针更深层次的关系
阅读全文
C编译器的编译过程主要分成四步: (1) 预处理 (2) 编译 (3) 汇编 (4) 连接
摘要:解密C语言编译背后的过程 我们大部分程序员可能都是从C语言学起的,写过几万行、几十万行、甚至上百万行的代码,但是大家是否都清楚C语言编译的完整过程呢,如果不清楚的话,我今天就带着大家一起来做个解密吧。 C语言相对于汇编语言是一种高级语言,要想在系统上运行,需要通过编译器把它转换成机器能够读懂的可执行
阅读全文
一个宏实现
摘要:用一个宏实现求两个数中的最大数 用一个宏实现求两个数中的最大数 最常见的实现方法 在面试或者笔试中,经常会碰到“用一个宏实现求两个数中的最大数”这个题目,大家看到这个问题,觉得很容易实现,认为这有什么难度呢,随手就是一个: #define MAX(x, y) \ ((x) > (y) ? (x) :
阅读全文
链接
摘要:链接的思考 引言 最近做一些工程,经常遇到链接错误,为此翻阅了相关的资料,梳理了一下编译链接的流程和原理。编程语言分为编译型和解释型,编译型语言是用编译器将高级语言翻译成计算机可执行的低级语言;而解释型语言是使用解释器是将低级语言“提升”成高级语言。解释型语言一次执行一句,缺少程序的全局信息,解释器
阅读全文
面对对象式编程的基本特征:
摘要:面对对象式编程的基本特征: https://www.cnblogs.com/wahaha02/p/10147639.html 介绍 不同的编程语言具有不同的抽象原语(如下),有的原语抽象层次低,有的原语抽象层次高。其中函数式、DSL是这几年十分热门的编程语言概念。 过程式抽象原语:变量 对象式抽象原
阅读全文
Hello World
摘要:Hello World 是如何运行的 上一篇序章我谈了谈 程序员为啥要懂底层计算机结构 ,有人赞同也有人反对,但是这并不影响 LZ 对深入理解计算机系统研究的热情。这篇博客以案例驱动的模式,通过跟踪一个简单 Hello World 程序的生命周期开始系统的学习,包括它被程序员创建,到在系统上运行,输
阅读全文
时间操作
摘要:时间操作 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处。否则将追究法律责任。http://www.cnblogs.com/jiangxueqiao/p/7484571.html 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处。否则将追究法律责任。ht
阅读全文
C指针
摘要:指针 考虑到指针内容繁多,这里将指针作为一个系列,从简入繁,带着没有研究过指针的朋友,一点一点深挖并掌握这C语言的精华。初步计划如下 此文为指针系列第一篇: C语言精要总结-指针系列(一) 内存与地址 我们可以把内存看做一排连续的房间,每个房间(字节空间)都有一个房间号,房间号就是这个房间的地址,而
阅读全文
Linux下用GCC
摘要:Linux下用GCC 前言 离职前对做过的支付系统进行了一番#总结,继续完善我的C服务器。 本想着接下来大概实现一下 CGI 协议,但是实现过程中被一个问题卡住了: C进程与php进程的交互数据类型问题: 在 C 进程中我准备将服务器处理后的请求数据存储在一个结构体内,然后将此结构体中的信息传给 P
阅读全文
高效线程池(threadpool)的实现
摘要:高效线程池(threadpool)的实现 Nodejs编程是全异步的,这就意味着我们不必每次都阻塞等待该次操作的结果,而事件完成(就绪)时会主动回调通知我们。在网络编程中,一般都是基于Reactor线程模型的变种,无论其怎么演化,其核心组件都包含了Reactor实例(提供事件注册、注销、通知功能)、
阅读全文
数组的动态分配
摘要:C语言实现数组的动态分配 摘要:数据结构和算法对于编程的意义不言而喻,具有指导意义的。无论从事算法优化方向研究,还是大数据处理,亦或者网站开发APP开发云云。在求职过程中数据结构必然也是笔试的重点,面试的常客。基于此,系统梳理复习下数据结构和算法相关知识,其实核心为链表操作,串的匹配,树的先序、中序
阅读全文
开发Nginx模块
摘要:开发Nginx模块 前面的哪些话 关于Nginx模块开发的博客资料,网上很多,很多。但是,每篇博客都只提要点,无法"step by step"照着做,对于初次接触Nginx开发的同学,只能像只盲目的蚂蚁瞎燥急!该篇文章没有太多技术深度,只是一步一步说明白Nginx模块的开发过程。 开发环境搭建 工欲
阅读全文
Obstack是C标准库里面对内存管理的GNU扩展
摘要:Obstack是C标准库里面对内存管理的GNU扩展 Obstack介绍 Obstack初始化 在Obstack中申请对象 释放对象 申请growing object 获取Obstack状态 数据对齐 以下是来自wiki对obstack的介绍: Obstack是C标准库里面对内存管理的GNU扩展(实际
阅读全文
内存申请和释放及堆连续
摘要:glibc 内存申请和释放及堆连续检查 C语言有两种内存申请方式: 1、静态申请:当你声明全局或静态变量的时候,会用到静态申请内存。静态申请的内存有固定的空间大小。空间只在程序开始的时候申请一次,并且不再释放(除非程序结束)。 2、自动申请:当你声明自动变量的时候会使用自动申请。函数参数、局部变量都
阅读全文
c 网络与套接字socket
摘要:c 网络与套接字socket 我们已经知道如何使用I/O与文件通信,还知道了如何让同一计算机上的两个进程进行通信,这篇文章将创建具有服务器和客户端功能的程序 互联网中大部分的底层网络代码都是用C语言写的。 网络程序通常有两部分组成:服务器和客户端。 工具介绍: telnet 为了测试功能,我们使用一
阅读全文