
C/C++
skillart
It is me.
展开
-
go protobuf
安裝go环境wget https://golang.google.cn/dl/go1.15.8.linux-amd64.tar.gz tar -C /usr/local -zxvf go1.15.8.linux-amd64.tar.gz 添加环境变量:添加/usr/loacl/go/bin目录到PATH变量中。添加到/etc/profile 或$HOME/.profile都可以# 习惯用vim,没有的话可以用命令`sudo apt-get install vim`安装一个原创 2021-02-07 20:58:23 · 129 阅读 · 0 评论 -
C++中的字节对齐分析
struct A{ int a; char b; short c;};struct B{ char a; int b; short c;};#pragma pack(2)struct C{ char a; int b; short c;};#pragma pack(1)struct D{...转载 2019-08-03 18:00:36 · 207 阅读 · 3 评论 -
Lua和C++交互详细总结
一、Lua堆栈要理解Lua和C++交互,首先要理解Lua堆栈。简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。在Lua中,Lua堆栈就是一个struct,堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-1永远表示栈顶。如图:lua的栈类似于以下的定义, 它是在创建lua_State的时候创建的:...转载 2019-08-03 15:35:11 · 153 阅读 · 0 评论 -
c语言中的memcpy实现
https://blog.youkuaiyun.com/goodwillyang/article/details/45559925这里说一下为什么内存重叠的时候,使用strcpy会出现崩溃。char * strcpy(char *dst,const char *src) //[1]{ assert(dst != NULL && src != NULL); //[2...转载 2019-07-17 21:05:18 · 220 阅读 · 0 评论 -
Visual studio is waiting for internal operation to complete
遇到两次了 忘记上次怎么解决的 备录一下http://stackoverflow.com/questions/28530530/visual-studio-is-waiting-for-internal-operation-to-complete但是对我没用。既然waiting那我就打开一直等,直到vs崩溃自动重启,然后就ok了原创 2017-05-18 10:28:54 · 816 阅读 · 0 评论 -
C++智能指针及其简单实现
本文将简要介绍智能指针shared_ptr和unique_ptr,并简单实现基于引用计数的智能指针。使用智能指针的缘由 1. 考虑下边的简单代码:1 int main()2 {3 int *ptr = new int(0);4 return 0;5 } 就如上边程序,我们有可能一不小心就忘了释放掉已不再使用的内存,从而导致资源泄漏(resour转载 2017-03-16 14:20:11 · 3622 阅读 · 0 评论 -
C++11 毫秒时间
计时有很多用途,比如:测试某一段代码的运行时间,时间越短,则性能相对越高。计时有很多方法,我将首先给出我以前常用的一种计时方法,然后给出我认为的最佳方法(采用了C++11的标准技术)。首先给出我以前常用的一种“传统”的计时方法:#include using namespace std;clock_t start = clock();// do something...cl转载 2016-12-29 11:04:34 · 8447 阅读 · 0 评论 -
实现photoshop 正常混合的shader
实际上就是openGl里面的混合模式{GL_SRC_ALPHA,GL_ONE_MIUNS_SRC_ALPHA}但是因为直接在cocos里面用混合模式就会多创建一个精灵,由于图片较大没有加入图集所以会增加draw call。就用shader实现了一个。vec4 BlendNormal(vec4 src, vec4 des) { float sr = src.a; fl原创 2016-08-25 17:27:47 · 1500 阅读 · 0 评论 -
//再回调里面调用lanuma表达式 this指针改变
auto okBtn = MySprite::create("#jiesuotankuang_3.png", [&](Ref* pSender){ if (GameData::getInstance()->canUnLockLevel(_selLevel)) { int needNum = GameData::getInstance()->getNeedHeartNumByUn原创 2016-02-04 17:31:16 · 531 阅读 · 0 评论 -
分清成员函数,非成员函数和友元函数
成员函数和非成员函数最大的区别在于成员函数可以是虚拟的而非成员函数不行。所以,如果有个函数必须进行动态绑定(见条款38),就要采用虚拟函数,而虚拟函数必定是某个类的成员函数。关于这一点就这么简单。如果函数不必是虚拟的,情况就稍微复杂一点。看下面表示有理数的一个类:class rational {public: rational(int numerator = 0, int转载 2016-01-25 21:07:42 · 441 阅读 · 0 评论 -
cocos2dx导入到eclipse出现"C/C++ Indexer". java.lang.NullPointerException
解决办法:打开Android工程中的.cproject文件,删除下面代码即可。转载 2015-08-19 22:37:16 · 1636 阅读 · 0 评论 -
Free Heap block xxxxxxxx modified at xxxxxxxx after it was freed
好久没有动的项目了,前几天改动了一下,今天发现问题了,很头疼。意思就是释放了又使用了。这类的问题真不好找的,以为是多线程的问题,最后排查好久,发现是获取一个getInstacne(),我以前释放掉了。之后又用了,就出现这种情况了。记录一下。原创 2015-05-05 17:31:53 · 93051 阅读 · 0 评论 -
C/C++上二维数组的两种动态分配内存方法
最近在看一个程序的源代码的时候了解到了二维数组的动态分配空间以及释放的方法,在此记录。一、二维数据的内存空间动态分配方法一:[cpp] view plaincopyvoid malloc2D_1(int **&a) { a = new int*[xDim]; for(int i=0;i a[i] = new int转载 2015-05-12 11:19:07 · 882 阅读 · 0 评论 -
函数指针详解
一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件void MyFun(int x);//此处的申明也可写成:void MyFun(int );int main(int argc, char* argv[]){ MyFun(10);//这里是调用MyFun(10);函数 return 0;}voi转载 2014-08-09 16:22:24 · 722 阅读 · 0 评论 -
vector 反向迭代器的使用
反向迭代器1 反向迭代器其实没什么特殊的,他只是在遍历的方向上和普通迭代器不通而已:每一个容器里面都有Iterator(迭代器),可以从容器的begin位置到end-1位置,通过++来遍历。同样也有个反向迭代器reverse_iterator,从rbegin(=end)到rend(=begin-1)反向遍历,仍然通过++.转载 2014-04-28 14:23:22 · 21614 阅读 · 2 评论 -
Boost智能指针——shared_ptr
http://www.cnblogs.com/TianFang/archive/2008/09/19/1294521.html转载 2014-04-28 15:13:12 · 626 阅读 · 0 评论 -
cocos2dx3.0 vector删除元素
Vector vec; for (int i = 0; i < 4; ++i) { auto n = Node::create(); n->setTag(i); vec.pushBack(n); } Vector toErase; for(auto n : vec) {原创 2014-04-28 14:38:40 · 6434 阅读 · 0 评论 -
cocos2d-x c++ 和 java互调
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台 extern "C"{ void Java_com_qingxue_game_GunStreet_getPoint(JNIEnv* env, jobject thiz, jint a) { shopLayer->setGainPoint(a); }}#endif void ShopLayer::setGainPoint(int gain){ in原创 2014-01-10 12:50:51 · 4390 阅读 · 0 评论