- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 二维数组与一维数组指针
直接上代码#include <stdio.h>int main(){ int arr[2][10] = {0}; int *ptr[2]; ptr[0] = arr[0]; ptr[1] = arr[1]; arr[1][5] = 1; ptr[1][6] = 2; printf("arr[2][5] is %d\n", arr[2][5]); printf("ptr[2][6] is %d\n", ptr[2][6]);}反汇编代码为在执行arr[1][
2021-10-22 13:50:44
220
原创 使用vscode+docker开箱即用调试postgresql代码
一:环境准备首先需要安装 docker 和 vscode,vscode要安装docker和Reomte-Containers插件二:下载镜像docker pull lishizhen/postgresql84_debug此镜像基于 postgres8.4版本代码,基于centos镜像构筑,安装了编译postgresql所需的依赖库,并且进行了编译与安装,可以直接调试。官方地址:https://hub.docker.com/r/lishizhen/postgresql84_debug三:启
2021-10-02 00:32:33
630
原创 C函数指针的多相性
/**2021/8/27 * 苏艺腾 * 令人吃惊的是,下面函数指针的用法都是正确的。 **/#include <stdio.h>void hello(void){ printf("hello\n");}int main(void){ void (*hello_p)(void); void (*hello_a)(void); void (*hello_s)(void); hello_p = hello; hello_a = &
2021-08-27 11:27:58
192
原创 c语言中令人迷惑的局部静态变量
C程序在编译后,会以三种形式使用内存。静态/全局内存静态声明的变量分配在这里,全局变量也使用这部分内存。这些变量在程序开始运行时分配,直到程序终止才消失。所有函数都能访问全局变量,静态变量的作用域则局限在定义它们的函数内部。自动内存静态声明的变量分配在这里,全局变量也使用这部分内存。这些变量在程序开始运行时分配,直到程序终止才消失。所有函数都能访问全局变量,静态变量的作用域则局限在定义它们的函数内部。这些内存位于栈上。动态内存内存分配在堆上,可以根据需要释放,而且直到释放才消失。这些内存位于.
2021-08-24 17:26:41
242
原创 告别LiveServer,vscode微软官方的LivePreview来了
今天更新了vscode1.59版本,看到更新简要里写着Live Preview extension这个插件是一个网页的实时渲染显示功能,就和markdown的实时预览功能一样。安装插件以后会发现在打开html文件的状态下右上角多了一个跟markdown一样的预览按钮,点击之后又会出现一个编辑器内置的web窗口。相比于LiveServer只能打开网页的实时渲染功能(现在也可以内置在编辑器内,但是不稳定),Live Preview无疑跟vscode的集成程度更高(毕竟是微软官方插件)。目前此插.
2021-08-06 16:11:09
6675
2
原创 C语言中函数内的局部变量的内存在函数结束后会被释放
记录一次BUG,C语言中函数内的局部变量在函数返回后会被释放,因此在左边程序rs485_H中可以成功的取地址并赋给mbHandler->rs485_H,但是在此函数结束后,再次使用mbHandler->rs485_H时会发生错误,而且很难发现:(。...
2021-07-27 23:29:02
3820
1
转载 linus访谈:没有比C更好的编程语言
没有比C更好的编程语言https://www.bilibili.com/video/BV1XA411L72linus:I like interacting with hardware from a software perspective and I have yet to see a language that comes evev close to C in that respect.It’s not just that C you can use C to generate good cod
2021-05-19 22:09:54
320
原创 不定积分公式和推导
不定积分公式一、记忆部分∫tanxdx=−ln∣cosx∣+C\int{\tan x}dx = -\ln |\cos x|+C∫tanxdx=−ln∣cosx∣+C∫cotxdx=ln∣sinx∣+C\int \cot xdx = \ln |\sin x|+C∫cotxdx=ln∣sinx∣+C∫secxdx=∫1cosxdx=ln∣1+sinxcosx∣+C\in...
2020-04-09 21:38:37
17589
2
原创 寄存器机 RodRego
RodRego — a register machine寄存器机(register machine)是一种类似于图灵机一样的抽象机器,是计算机模型的一种,他和其他的抽象机一样都是图灵等价的。RodRego是哲学家丹尼尔·丹尼特和他的朋友制作的一款寄存器机模拟软件。通过编写简单的命令在RodRego进行计算,你可以了解计算机是如何进行计算的。寄存器机器主页: http://sites...
2019-09-09 21:32:55
1252
1
原创 CSAPP笔记--第八章 异常控制流
第八章 异常控制流ECF8.1 异常 Exception异常Exception中断:异步异常同步异常陷阱故障中止异常是异常控制流的一种形式,他一部分由硬件实现,一部分由操作系统实现。在任何情况下,当处理器检测到有事情发生时,他就会通过一张叫做异常表(exception table)的跳转表,进行一个简介过程调用(异常),到一个专门用来处理这类事件操作系统子程序(异常处理程序 excepti...
2019-08-30 18:47:45
273
原创 AT&T和Intel汇编区别
AT&T和Intel汇编区别AT&TIntel大多使用小写字母大多使用大写字母寄存器名要加上%前缀没有前缀操作指令源在前,目标在后目标在前,源在后访问指令的操作数大小由操作码名称最后一个字母决定在操作数前面加“BYTE PTR”或者“WORD PTR”直接数要加$前缀不带前缀jump/call的操作数要加“*”前...
2019-08-29 20:14:30
229
原创 简单可执行文件
最小的可执行文件使用write系统调用。TinyHelloWorld.cchar *str = "Hello world!\n";void print(){char *str = "Hello world!\n";void print(){ /* asm为嵌入式汇编关键词 syscall表示进行系统调用 rex表示系统调用号,1号为write调用 in...
2019-08-29 10:50:47
323
原创 链接,装载与库--“最小的程序“在64位系统下运行
在阅读《程序员的自我修养–链接装载与库》的第四章 静态链接 4.6.2最小的程序时,发现代码是基于linux32位系统的程序,无法在64位系统上编译和运行。正确的64位程序应该为代码char *str = "Hello world!\n";void print(){ asm("movq $13,%%rdx \n\t" "movq %0,%%rsi \n\t" ...
2019-08-27 21:40:06
239
原创 Spring项目中创建ClassPathXmlApplicationContext对象时 路径没问题 却找不到xml文件
问题描述ClassPathXmlApplicationContext context;context = new ClassPathXmlApplicationContext("Knight.xml");在运行这段代码创建ClassPathXmlApplicationtext对象时,一直输出无法找到xml文件的异常,即使使用C:\Users\asus\Desktop\java\Spring...
2019-08-24 19:13:34
4936
原创 推荐几个好看的emacs主题(emacs颜值党)
1 monokai输入package-list-packages,查找monokai,一款非常经典的配色,个人最喜欢的主题,颜值非常高。2 tango-dark个人觉得是emacs自带的几个主题中最好看的一个,在Options --> Coustomize emacs --> Coustom Themes 中选择tango-dark配色简单大方,没有一些特别伤眼睛的...
2019-08-05 00:13:56
6139
1
原创 在emacs中使用百度翻译
因为我的英语水平不好,在查看emacs帮助文档时经常需要使用一些翻译软件,在elpa镜像源中有google-translate插件,但是需要翻墙,于是我就仿照着google-translate插件的功能,使用百度翻译API写了一个emacs翻译插件。项目地址:https://github.com/liShiZhensPi/baidu-translate该插件已经上传到melpa上,只要你加...
2019-07-31 12:35:45
449
原创 Java Socket+多线程 实现多人聊天室功能
思路简介分为客户端和服务器两个类,所有的客户端将聊的内容发送给服务器,服务器接受后,将每一条内容发送给每一个客户端,客户端再显示在终端上。客户端设计客户端包含2个线程,1个用来接受服务器的信息,再显示,1个用来接收键盘的输入,发送给服务器。import java.io.IOException;import java.io.InputStream;import java.io....
2019-06-03 17:56:05
2282
1
原创 Java Socket实现双向通讯
当我们使用java套接字编程实现通讯时,如果想实现双向的通讯,就有必要对每次传输的数据量进行限制。例如,实现一个可以进行多次密码验证的服务器--客户端程序。首先是服务器代码import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Server...
2019-06-02 18:30:19
3525
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人