当前位置:网站首页>【精通高并发】深入理解C语言基础与汇编下的C语言
【精通高并发】深入理解C语言基础与汇编下的C语言
2022-06-25 15:57:00 【华为云】
作者简介:小明的Java问道之路,某大型金融互联网公司后端研发高级工程师,擅长订单/交易领域的高安全/可用/并发/性能的架构设计与落地,专注于研究计算机底层与金融科技领域技术
如果此文还不错的话,还请关注、点赞、收藏三连支持一下博主
本文导读:C语言基础部分不过多赘述,主要讲解结构体、指针和数组原理,并分析汇编下的C语言。Liunx内核和JNI都是通过C编写,这部分主要讲解通过操作指针和内存执行程序的思想,对后续Hotspot和java的api的理解有很重要的作用。
二、C语言基础
1.结构体应用
必须使用struct语句,struct语句定义了一个包含多个成员的数据类型
2.从汇编的角度看结构体
从此段简单的代码分析,name和age地址相差8个字节,整好是一个整形4个字节+4个字节填充,我们将其反汇编,看下汇编代码的实现。
每个变量都会有一个内存地址,每个内存地址都可以使用&访问,他表示在内存中的地址。首先明确一个概念,指针就是一个变量,其值就是另一个变量的地址(内存位置的直接地址),所有使用的时候必须先声明。
将上述代码反汇编之后的代码,作者为64位系统
5.一些指针的基础应用
通过指针访问数组,数组是连续的空间,指针中保存的是对应数据的地址,声明数组的时候就是默认新开辟连续的地址空间的第一个元素的地址,使用var[index] 等价于我们直接操作指针 * 引用获取元素;
指针数组就是保存元素地址(指针)的数组
边栏推荐
猜你喜欢
What processes are needed to build a wechat applet from scratch?
数字经济时代文化消费新特征
1-8Vmware中的文件共享
Day_ fourteen
GO语言-什么是临界资源安全问题?
Understand the execution sequence of try catch finally in one diagram
完美洗牌问题
Lecun predicts AgI: big model and reinforcement learning are both ramps! My "world model" is the new way
【蓝桥杯集训100题】scratch指令移动 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第14题
DDD概念复杂难懂,实际落地如何设计代码实现模型?
随机推荐
加密潮流:时尚向元宇宙的进阶
Ncnn source code learning collection
Day_ thirteen
What is the NFT digital collection?
WPF开发随笔收录-心电图曲线绘制
Catheon gaming appointed mark Aubrey, former Asia Pacific head of Activision Blizzard, as CEO
What plug-ins are available for vscade?
Final, override, polymorphic, abstract, interface
Detailed explanation of IVX low code platform series -- Overview (I)
Day_ eleven
The third day of mysql45
10款超牛Vim插件,爱不释手了
First knowledge of database
What can NFT metauniverse development do?
Day_ 05
IO stream
Summary of 2022 spring moves of ordinary people (Alibaba and Tencent offer)
iVX低代码平台系列详解 -- 概述篇(一)
One minute to familiarize yourself with the meaning of all fluent question marks
Precautions for function default parameters (formal parameter angle)