底层学习
底层学习
涛子王
所有的程序思想都来源于生活,所以程序对于生活是比较简单的,不管多么简单的一个程序,程序员都喜欢起一个高大上的名称,所以学习代码不要先被名字吓跑,第一步先把名字的光环去掉,然后你会发现原来就是这玩意!!!
展开
-
汇编代码调试程序debug参数说明
汇编语言开发调试的步骤如下1.EDIT,编写汇编程序代码,生成.asm文件2.MASM,汇编程序,将.asm文件编译成二进制代码,生成.obj文件3.LINK,链接程序,将.obj链接成为可执行文件,生成.exe文件4.DEBUG,调试程序学习前我们先准备环境,工具下载地址如下:https://download.csdn.net/download/shanghaichongmin/67356237使用工具,先解压,不用位数的计算机开启方法不一样32位:dos路径切原创 2021-12-20 14:50:53 · 9719 阅读 · 0 评论 -
C语言,栈区、堆区、静态数据区、常量区、代码区 解析
#include<stdio.h>char* a0="test";char* a1;char b0[]="test";char b1[2];int c0=1;int c1;static int d0=2;static int d1;void test(){ char* e0="test"; char* e1; char f0[]="test"; char f1[2]; int g0=3; int g1; static int h0=4...原创 2021-12-08 10:06:08 · 1112 阅读 · 0 评论 -
linux环境c创建链接库并使用
什么是链接库:链接库就是一个包含了多个功能函数的文件,里面提供了一堆现成的函数方法,不需要再重复造轮子先把工作思路理清楚,怎么创建和使用链接库1.创建链接库2.创建调用链接库函数的代码,然后编译(包含链接库),生成可执行文件3.链接库注册到系统我们用取最大值来做一个例子1.创建链接库最大值的库源码//func.cint max(int a ,int b){ return (a>b)?a:b;}生成链接库文件,会生成一个libfunc.sogcc原创 2021-12-03 12:34:57 · 1663 阅读 · 0 评论 -
linux下c调用定时器
先理思路,我们一般肯定在前端或后端都使用过定时器,定时器设置肯定是有相似的步骤的,一般处理思想如下1.声明定时触发的方法2.声明定时执行的间隔时间3.声明定时器,设置间隔时间和回调方法一般其它语言定时器时间间隔多用一个整数值,单位是毫秒,但是c不一样,它是一个结构,如下/*1秒=1000毫秒=1000,000微秒*/strcut timeval{ long tv_sec; /*秒*/ long tv_usec; /*微秒*/};它是把秒和微秒拆开设置,时间间.原创 2021-11-18 18:11:05 · 1781 阅读 · 3 评论 -
c语言监听键盘
#include<stdio.h>#include<termios.h>/*存储原来的配置*/struct termios stored_settings;/*恢复原来的配置*/void resetConfig(){ tcsetattr(0,TCSANOW,&stored_settings);}/*新配置*/struct termios new_settings;/*设置按键监听配置*/void setNewConfig(){ .原创 2021-11-18 15:36:30 · 1473 阅读 · 0 评论 -
c语言printf控制与格式
输出控制\033[0m 关闭所有属性\033[1m 设置高亮度\03[4m 下划线\033[5m 闪烁\033[7m 反显\033[8m 消隐\033[30m -- \033[37m 设置前景色30: 黑,31: 红,32: 绿,33: 黄,34: 蓝,35: 紫,36: 深绿,37: 白色\033[40m -- \033[47m 设置背景色40: 黑,41: 红,42: 绿 ,43: 黄,44: 蓝,45: 紫,46: 深绿...原创 2021-11-18 09:46:12 · 1814 阅读 · 0 评论 -
位运算在开发中的使用
我们今天讲一个a和b两个数值交换的位运算使用方式传统:上面这个是我们最常用的方式,需要使用一个中间临时变量,今天我们换一个方式位运算:^是异或运算,那这个的原理是什么呢?我们来分析一下先转二进制m: 0101n : 1010m = m ^ n;m : 1111n = m ^ n;n : 0101 (等于原来的m了)m = m ^ n;m : 1010转换成10进制:m=10,n=5;这个有个疑问,异或到底是什么呢?我们来举个例子假设...原创 2021-08-06 18:11:26 · 206 阅读 · 1 评论 -
原码、反码、补码
计算机表示数字的方式为二进制,数字分为正负两种格式,我们分别来讲解正数原码、反码、补码 都是原来的值负数原码:高位为1,其它和正数一个表示方式一样反码:排除高位,其它位的数值0改为1,1改为0补码:低位加1例子(8位)-2929 => 00011101-29 => 1001 1101原码:1001 1101反码:11100010补码:1110 0011那原码、反码、补码为什么是这么计算的呢8为带符号的二进制,第1位是符号..原创 2021-07-21 16:58:09 · 1212 阅读 · 0 评论 -
二进制运算
两个数相加的步骤1.提供两个运算值2.异或运算(算出每个位上的值)3.与运算(算出每个位是否有进位)4.判断【步骤3】的值是否都为0,都为0运算结束,返回上面【步骤2】的值5.【步骤3】的值左进一位6.【步骤2】和【步骤5】的值放入【步骤1】,从头开始再执行例子:13+1213:0000 110112:0000 11001.0000 11000000 11012.0000 00013.0000 11004.不全为0,所以继续5.000原创 2021-07-21 16:30:47 · 102 阅读 · 0 评论