language
taoqilin
这个作者很懒,什么都没留下…
展开
-
什么叫C#托管
托管是指托管代码,C#编写完后进行编译,此时编译器把代码编译成中间语言(IL),而不是直接在你电脑上运行的机器码。托管代码在公共语言运行库(CLR)中运行,这个运行库能提供多种服务。通常来说,他可以加载并验证程序集,并以此来保证中间语言的正确性。原创 2016-10-12 22:16:16 · 818 阅读 · 0 评论 -
重新介绍 JavaScript(JS 教程)摘要
Number(数字)String(字符串)Boolean(布尔)Symbol(符号)(第六版新增)Object(对象)Function(函数)Array(数组)Date(日期)RegExp(正则表达式)Null(空)Undefined(未定义)JavaScript 中 null 和 undefined 是不同的,前者表示一个空值(non-value),必须使用null关键字才能访问,后者是“und...转载 2018-03-11 14:49:57 · 642 阅读 · 0 评论 -
c++ protobuf获取数据(指针)
如果proto结构体的变量是基础变量,比如int、string等等,那么get直接根据变量名,set的时候直接调用set_xxx即可。如果变量是自定义类型,那么C++的生成代码中,就没有set_xxx函数名,取而代之的是三个函数名:set_allocated_xxx() release_xxx() mutable_xxx()使用set_allocated_xxx()来设置变量的时...原创 2018-07-25 18:40:26 · 5845 阅读 · 0 评论 -
五分钟读懂UML类图
平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧:一、类的属性的表示方式在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法。...转载 2018-11-17 13:08:42 · 192 阅读 · 0 评论 -
bat备忘
%0代表文件本身 d代表盘符 p代表路径 %~f0 - 完整的路径+文件名 %~n0 - 文件名(无扩展名) %~x0 - 文件扩展名 %~t0 %~z0原创 2019-01-19 18:04:35 · 115 阅读 · 0 评论 -
深入浅出Lua虚拟机
Lua的执行流程:Lua代码的整个流程:如下图所示:程序员编码lua文件->语法词法分析生成Lua的字节码文件(对应Lua工具链的Luac.exe)->Lua虚拟机解析字节码,并执行其中的指令集->输出结果。蓝色和绿色的部分是本文所试图去讲的内容。词法语法分析:我不准备讲Lua的所有词法分析过程,毕竟如果浪费太多时间来写这个的话一会策划同学要提刀来问我需求...转载 2019-02-16 15:37:46 · 734 阅读 · 0 评论 -
lua的class简易实现
直接贴代码:function class(classname, super) local superType=type(super) local cls if superType ~= "function" and superType ~= "table" then superType=nil super=nil end ...原创 2019-02-17 13:16:53 · 5772 阅读 · 0 评论 -
C++中让人忽视的左值和右值
前言为了了解C++11的新特性右值引用,不得不重新认识一下左右值。学习之初,最快的理解,莫过于望文生义了,右值那就是赋值号右边的值,左值就是赋值号左边的值。在中学的数学的学习中,我们理解的是,左值等价于等号左边的值,右值等价于等号右边的值;当我们继续学习C语言时,等号=不再叫等号,盖头换面叫做赋值号;那么来到C++我们还能这么理解吗?答案是部分否定的。假如你现在还是这样理解,那么请继续往下...转载 2019-02-25 18:18:54 · 117 阅读 · 0 评论 -
C++空指针调用成员函数
Class TempActor : public AActor{ FString GetName() { return TEXT("TempActor "); }}TempActor * temp = nullptr;temp->GetName();以上代码如果在C#里肯定会报NullReference,但是C++里执行正常。换句话说 空指针仍然能调用进成员函数,直到代码...原创 2016-11-25 17:17:00 · 748 阅读 · 0 评论 -
c++ static关键字
C++中的static关键字的总结 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#...转载 2016-02-22 12:39:46 · 337 阅读 · 0 评论 -
C++临时变量的生命周期
C++临时变量的生命周期C++ 中的临时变量指的是那些由编译器根据需要在栈上产生的,没有名字的变量。主要的用途主要有两类:1) 函数的返回值, 如: 1 string proc() 2 { 3 return string("abc"); 4 } 5 6 int main() 7 { 8 proc(); 9 return 0; 10 }其中第 8 行...转载 2016-09-02 11:00:29 · 849 阅读 · 0 评论 -
exe文件包含数据段、代码段
数据段、代码段在编译时就能确认地址,而堆栈段属于动态内存开辟,编译时无法确定。以win32程序为例。程序执行时,操作系统将exe文件映射入内存。exe文件格式为头数据和各段数据组成。头数据说明了exe文件的属性和执行环境,段数据又分为数据段,代码段,资源段等,段的多少和位置由头数据说明。也就是说,不仅仅只是代码段和数据段。这些段由不同的编译环境和编译参数控制,由编译器自动生成exe的段和文件格式。...原创 2016-09-01 17:29:35 · 2403 阅读 · 0 评论 -
才搞清楚常量的存储位置
一个形如42的值被称为字面值常量。字面值常量的形式和值决定了常量的类型。例如0x42是16进制表示的整型常量。‘a'是char型字面值。字面值常量顾名思义由字面意思表示,是常量。字面值常量在程序中是直接表示的,整型直接写出大小,字符直接写出字符。一个字面值常量在编译时被直接解析为立即数,编译器内部维护字面值常量的类型。 常量表达式是指在编译过程中,该表达式的值不会改变,且编译过程中可以...转载 2016-09-01 17:12:03 · 16734 阅读 · 4 评论 -
C++ 直接初始化与赋值初始化,讲的很仔细
一、我的问题是关于初始化C++类成员的。我见过许多这样的代码: CSomeClass::CSomeClass() { x=0; y=1; } 而在别的什么地方则写成下面的样子: CSomeClass::CSomeClass() : x(0), y(1) { } 我的一些程序员朋友说第二种方法比较好,但他们都不知道为什么是这样。你能告诉我这两种类成员初始化方法的区别吗? 回答 从技术上说,你的程序员...转载 2016-08-18 15:17:55 · 18348 阅读 · 0 评论 -
C++堆还是栈上创建对象
这篇文章来自于一次讨论:http://www.devbean.net/2013/01/qt-study-road-2-model-view/#comment-17532。关于究竟是在堆上还是在栈上创建对象,可能很多初学者感到迷惑。我想可以把这部分内容拿出来详细介绍一下。现在,假设你已经清楚什么是堆,什么是栈。如果需要在堆上创建对象,要么使用new运算符,要么使用malloc系列函数。这点没有异议。...转载 2016-08-18 11:31:39 · 1769 阅读 · 0 评论 -
C++实现的委托机制
转载 C++实现的委托机制1.引言下面的委托实现使用的MyGUI里面的委托实现,MyGUI是一款强大的GUI库,想理解更多的MyGUI信息,猛击这里http://mygui.info/ 最终的代码可以在这里下载:http://download.csdn.net/detail/gouki04/3641328 我们的目标是要实现一个跟.NET几乎完全一样的委托,使用简单,支持多播,可以添加删除委托。...转载 2016-03-28 15:05:27 · 1269 阅读 · 0 评论 -
c++ extern及其对struct的使用
extern是一个关键字,它告诉编译器存在着一个变量或者一个函数,如果在当前编译语句的前面中没有找到相应的变量或者函数,也会在当前文件的后面或者其它文件中定义,来看下面的例子。能够使用extern引用其它cpp文件中定义的函数说明了一个问题:如果一个工程现编译cpp文件,在把多个目标文件链接成为可执行文件,而两个或多个文件中,定义了相同的全局变量,那么,程序编译的时候不会报错,因为编译器单独编译每...原创 2016-03-27 14:46:32 · 3569 阅读 · 0 评论 -
类的实例和实例的成员变量的销毁
20160218:我对类的实例所占用的内存有个误区:我认为类的实例的内存大小为其下所有成员变量的内存之和,它可能占内存里的一大块区域。比如:Class A{ private int i;},在堆内存里new一个A的实例a,请问a的内存大小是多少?是4个字节吗?站在内存的角度上,它只分配了4个字节的空间给成员变量i,但它根本不知道什么是实例,因为实例是一个抽象的概念。所以我认为a没有占用任何内存,...原创 2016-02-24 23:00:23 · 4513 阅读 · 0 评论 -
Lua与C++交互
一、Lua堆栈要理解Lua和C++交互,首先要理解Lua堆栈。简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。在Lua中,Lua堆栈就是一个struct,堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-1永远表示栈顶。如图:lua的栈类似于以下的定义, 它是在创建lua_State的时候创建的:...转载 2019-03-16 14:51:33 · 215 阅读 · 0 评论