自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (2)
  • 收藏
  • 关注

原创 lua源码解析三,lua_cpcall等一系列函数调用过程中的封装步骤各有什么作用

在追踪lua源码过程中,有一堆的关于call的函数,令人眼花缭乱,如果不稍作整理,就很难掌握什么情况下调用哪个call函数,以下是列举的几个call相关函数type void (*Pfunc)(lua_State*L, void* ud);void (lua_call)(lua_State*L, int nargs, int nresults);int (lua_pcall)(lua_...

2020-02-26 16:52:42 1135

原创 lua源码解析与笔记整理二,函数的解析和调用过程

上一篇记录了local变量的解析过程,今天整理下函数funciton在虚拟机的解析和调用过程;主要目标:函数怎么存放,参数怎么存放,怎么执行函数和传递参数,返回值怎么传递。来个简单的例子 ,在lua命令行输入如下代码local myfun = function(a,b) return a + bend 一般来说虚拟机都是阻塞在读取输入的地方,当输入上面代码后,接下来看下...

2020-01-17 17:46:50 981

原创 lua只读表的原理解析

原理:让目标table的元素转移,变成一张空table,这样访问和修改都会触发index和newindex方法,因为这是一张空表。然后用index保存原table的元素,这样index可以访问到原table元素,跟正常访问没区别,修改时因为这是一张空表,会触发newindex方法,直接打印 read only, 设计完成只读table的设计过程如下:1 首先有一张目标table: ...

2020-01-16 10:46:50 359

原创 #pragma int_seg手动安排C++全局变量的初始化顺序

对于同一个文件而言,如main.cc:int a,int b;int c;总是从 a -> b ->c 的确定顺序初始化的,而如果不同文件,other.cc中的全局变量int e;int f;int g;两个文件之间的全局变量初始化顺序是不确定的,现在有个#pragma int_seg 可以让你的局部变量在进入程序初始化操作前就先初始化一些变...

2020-01-10 17:15:04 180

原创 使用vld内存检测实操

vld介绍还有下载安装什么的略过:使用方法如下1 直接在工程文件前面 #include<vld.h> 即可2 在debug版本有效3 将vld安装目录下的vld.ini文件拷贝到执行文件同目录下,并且 ReprotTo = 设置为both, 则输出信息到控制台和文件中默认是./memory_leak_reprot.txt, 可以通过ReprotFile = 配置改...

2020-01-10 15:35:04 175

原创 lua源码阅读笔记与思路整理一

由于工作需要用了很多年的lua编写各种逻辑处理模块,今天心血来潮,决定深入了解一下lua源码的实现,目的是方便自己的lua代码调试,省的每次都用print打印这种原始手段,本“长篇小说“主要弄懂以下的问题:1 local , global, upvalue 的原理和实现,upvalue的查找和递归标记是什么?2 Function是什么,执行过程如何,参数如何传递,怎么分配栈上空间?3...

2020-01-08 12:39:41 382

原创 makefile笔记整理

make命令会在当前目录下按顺序找寻文件“makefile”、“Makefile”的文件,找到了执行make命令,否则退出。1、基本规则 gcc -o main a.o b.o c.o .... 全部技巧都是为了把文件组织为 gcc -o xxxx 的形式 -E: 预处理生成xxx.i -S:编译,生成汇编代码xxx.s -c: 汇编,...

2019-12-10 16:18:11 141

原创 同时输出信息到控制台和文件中tee指令

tee指令在linux下使用: 格式如xxx可执行程序 2&>1 | tee ./xxx.log

2019-12-10 12:11:57 834

原创 用批处理bat启动exe程序并重定向输出

流程:开始新建一个bat文件:如 go.cmd, 然后开始写,我们的可执行文件为 app.exe@echo offecho "go...."cd C:/xxxxx/xxxxx/appapp.exe > 1.txt 2>&1echo " done ..."这样就可以将exe的输出保存在1.txt文件中了...

2019-12-09 18:05:34 2971 1

原创 windows下检测内存泄漏的方法汇总

1.使用自带的_CrtDumpMemoryLeaks() , 省事,监听堆内存,程序结束时,任何未主动释放的堆内存都会报检并报错。2. 使用vld工具:这个需要安装工具后再包含<vld.h>头文件使用。3. 使用massif工具:这个比较强大,能列出调用的函数和分析内存的分布和使用情况。4. memcheck 工具, 这个也是很好用的内存检测工具。...

2019-12-09 16:38:24 1058

原创 127.0.0.1与0.0.0.0等特殊ip地址的含义

tips:用ipconfig -all查看本机所有网络方面的设置。包括主机名,ip,dns,ip6, 子网掩码,mac地址等127.0.0.1表示 Loopback Address,所有发到改地址的消息都会回传到本地,不会进行网络传输,可以用于测试网卡是否正常工作。0.0.0.0 : 缺省路由地址,表示所有没有特定地址的数据包或者没人要的包,都送到这个垃圾堆里面。如果某个服务器程序绑定...

2019-12-02 18:34:01 3559

原创 利用ping检测本机网络故障

本文抄书:<<计算机网络j技术基础>>1. ping 127.0.0.1 , 若通,则本机 网卡 工作正常;2. ping本机ip地址,若通,则本机 网络 正常;本机ip地址可用ipconfig命令获取2. ping 目标ip, 若通,则表示通信网络正常;...

2019-12-02 10:08:52 287

原创 linux 重定向输入输出 2>&1, 1>&2

在启动后台程序时,为了能让屏幕输出的信息保存起来,需要用到重定向方法。把屏幕输出到特定的文件中保存。在命令行中 : 0 表示标准输入 stdin, 1表示标准输出 stdout, 2表示错误stderr;一般重定向命令中1默认值,可以不用明写:> 后接 目标文件:app.sh > out.txt 与 app.sh 1 > out.txt是一样...

2019-11-27 17:35:01 381

原创 windows下断点调试监视变量的小技巧

假设我断点到一个变量,想知道变量前后地址的值,那怎么办呢看图,这是连个类的定义,我们看下运行时添加一个监视(A*)(ph +sizeof(head)) ,就得到以ph为基准偏移sizeof(head)的一个地址。 把这个地址解释为A*,那么久可以查看A->a的值了,往下运行,看看最后是不是等于1,显然我们是失败了,并不等于1,那么验证下地址是不是...

2019-11-01 17:15:30 419

原创 总结形形色色的各种typedef定义

typedef char CHAR;typedef char * CharPtr;typedef char CharArr[5]; //定义charArr类型,是一个5元素的一维数组//如果[ ]先结合,则就是数组, 如果*先结合,则就是指针, [ ]比*优先。typedef char* CharArrPtr[5]; // 5个元素的数组,元...

2019-10-29 16:17:31 180

原创 windows下关闭和开启mysql服务

首先进入cmd.exe命令行窗口;输入: net stop mysql; --->mysql 服务正在停止, ---》 服务已成功停止启动: net start mysql; -->mysql 服务正在启动, ---》 服务已成功启动...

2019-10-29 14:51:30 1254

转载 转:navcat链接不上mysql(已经将root用户的host改为%,并且赋予了所有权限)

navcat链接不上mysql(已经将root用户的host改为%,并且赋予了所有权限)版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_40974880/article/details/830567681、公司内网1)在公司内网搭建服务器,最终修改了mysql...

2019-10-29 12:30:53 696

原创 运算符重载 以及输入输出符号重载

有时候为了方便书写,我们需要重载运算符。比如class test{}是非内部类型数据,加法可能要这么写 a->getnum() + b->getnum();如果我们重载了+ 运算符,那么可以实现 a+b的简洁写法。废话少说,拿 cout << 的 “ << ”运算符举例当我们使用 cout<<value;时, 底层转换成类似这样的代...

2019-10-29 10:51:23 343

原创 mysql远程导出dump文件然后本地导入

dump导出: mysqldump -u用户名-p密码 数据库名 表名 > 存储文件名 如 mysqldump -uroot ppsd -mysql -user > dump.sqlsz : 下载文件 sz dump.sql登录本地:mysql -u root -p查看:show databases; s...

2019-10-24 17:07:49 802

原创 operator new : 重载new运算符

C++ 的new有三步: 调用运算符 new, 分配内存operator new, 调用构造函数 new(ptr) constructor.1 - 运算符 new 不可以重载: 所以 void* operator new() { } 是无法通过编译的。2 - 分配内存的new(size_t) 是唯一可以重载的: void* operator new(size_t si...

2019-10-23 16:14:59 1284

原创 lua的number类型对于C中的double,所以最大可存储的整数位-2^53 ~ 2^53, 保存int64则丢失部分数据

lua的number类型对于C中的double,所以最大可存储的整数位-2^53 ~ 2^53, 保存int64这种64位的整数则丢失部分数据

2019-10-18 18:08:49 2152

原创 C++可变参数列表 va_list

对于C++开发中,肯定有时候需要用到 func(a,b,c, ... )这种不确定参数多少的时候,对于这种可变参数列表,va_list就是用来操作这种参数列表的工具。 va_list是类型定义, 我们先来定义一个变量: va_list args; 此时 args 还未初始化,类似一个空指针,接下来我们要把这个‘’空指针|‘’ 指定到我们需...

2019-10-18 15:41:03 6552 1

原创 _CrtDumpMemoryLeaks 检测C 内存泄漏

_CrtDumpMemoryLeaks()会在调用时检测 此时刻 是否还有没释放的内存,如果有则报错返回。一般用于程序结束时调用,用于检测是否有内存没有释放(言外之意:内存泄漏了)#include <crtdbg.h>#ifdef _DEBUG //debug编译都是打开的#define _CRTDBG_MAP_ALLOC //打开堆内存调试的开关(堆内存操作...

2019-10-18 14:54:15 759

原创 lua中使用debug库traceback函数栈打印

lua 中的调试一直是弱项,大部分只能靠print打印,而经常需要查找函数调源头,靠print一个个打印似乎有点傻。网上找了lua的调试资料,发现有个非常好用的函数,就是traceback, lua自带的debug表里面。debug.traceback(), 返回当前调用的函数栈的字符串形式。用print就可以查看到函数调用的源头,从而大大方便lua的拍错。debug表的其他函数,我觉...

2019-10-18 10:32:15 5556

转载 MFC自定义类访问主窗口控件

在使用mfc的时候经常遇到自定义类访问主对话框控件的问题,例如自定义类中的方法要输出一段字符串到主对话框的EDIT控件、控制对话框的进度条等。   要在自定义的类中访问主对话框空间,须获得主对话的指针。主对话框的对象在app类的InitInstance()方法中声明。查看app类的cpp文件,在InitInstance()方法中有如下语句:   CAppDlg dlg;   m_pMa

2014-09-29 16:46:59 800

转载 自学编程的书和过程,留自己以后查漏补缺

1.计算机科学概论计算机科学概论 2.计算机数学基础高等数学线性代数概率论与数理统计离散数学及其应用离散数学教程(北大版)什么是数学具体数学:计算机科学基础 3.C语言谭浩强C程序设计C primer plusThe C programmiC和指针C专家教程C陷阱与缺陷c语言解惑C标准库你必须知道的495个C语言问

2014-04-29 13:55:51 401

转载 判断某天是星期几

计算星期可以用蔡勒(Zeller)公式(只适合于1582年10月15日之后的情形):w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下:c:世纪(年的高两位数);y:年(年的低两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2005年1月1日要看作2004年的13月1日来计

2014-04-17 11:16:39 324

原创 将指定日期转换成秒数

头文件:需要数据类型:time_t,

2014-04-16 17:15:37 1357

PDF阅读器与修改

PDF阅读器 最快速简洁的一种PDF阅读器 还可以打开其他多种文档 不含广告等插件

2015-02-18

LuaForWindows

LuaForWindows游戏开发必备工具.LUA 压缩文件,直接下载安装,包括编辑器

2015-02-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除