回答了问题2016-07-12
其实这个宏的名称已经很大程度上表述清楚了其作用:在程序启动时自动向GameServerModuleMgr注册某个模块,这实际上是实现了一种静态的插件系统。
关注了问题2016-07-12
赞了回答2016-07-12
如果你有mac,那就试试Dash吧,不然一般都是直接pdf或者在线文档
关注了问题2016-05-01
关注了问题2016-03-24
关注了问题2016-03-24
回答了问题2016-03-22
一般如果脚本需要root权限的话,我们都是一开始直接以root的身份执行脚本,而不是先以自己的id运行, 然后再在某个需要权限的操作的时候通过su或者sudo切换身份。
回答了问题2016-03-22
你的heredoc符号选择为了叹号,而配对的第二个叹号一直到了脚本文末。 换句话说,上述脚本bye之后的所有语句都被重定向给了ftp, 而不是被shell执行 解决方法:把!挪到bye之后一行。
关注了问题2016-03-19
赞了回答2016-03-19
怎么写?我觉得最重要的就是不要把markdown搞得太复杂了。记笔记一般也就用到标题,粗体斜体,代码块,列表,链接,引用,连图片用得可能都不多,所以,规范一下自己写这些格式的方式(比如无序列表和换行等有多种写法,坚持一种统一的可读性高的格式),这样不仅不用...
回答了问题2016-03-18
一般对于x86 calling convention来说,特别的,如果这是c语言编译后的结果,使用的cdecl calling convention,那么ECX是由调用者保存的,换句话说由于被调用的函数并不负责保存ECX, 题主例子中的ECX值可能在后续的函数调用后被覆盖。
回答了问题2016-03-18
所谓字典为非也就是一个hash table, 而hashmap在没有太多collision的情况下增查删改复杂度都是线性的。~~
回答了问题2016-03-18
看错误提示有不能GET plugins.gradle.org, 题主你手动ping看看或者在浏览器里访问那个地址看看吧,这个十有八九可能是你的网路问题。
回答了问题2016-03-17
编译器在看到下面例子里的函数时,它知道你在定义一个函数,这个函数名叫foo,foo将在程序运行的始终绑定到这个函数(因为他是这个函数的名字)。所以foo是这个函数的名字,他绑定到这个函数而上面这个例子,编译器定义了一个匿名函数,它没有名字,尔后的赋值将这个...
回答了问题2016-03-17
这种情况我建议你不要hardcode这些路径了,所以最好配合使用一些预处理工具。对于css可以选择less或者sass,对于后端渲染的html则将hardcode的url替换成对应模板系统里的变量。
回答了问题2016-03-17
要证明这个算法的正确性也很简单。但是需要将条件转换成等价的形式,条件里说我们需要对数组随机排列,这意味着每个数出现在某个位子的几率均等,均为1/n(假设有n个数)
回答了问题2016-03-14
实际上c++的对象都是作为by value的,如果需要by reference那你需要将函数签名改为const string& obj
回答了问题2016-03-14
我们说引用实际上是地址(或者指针)是从语言实现的角度说的,但对于C++语义的角度来讲,引用属于原始对象的别名,所以取地址是原始对象的地址,或者换句话说
回答了问题2016-03-12
DISCLAIMER: 切换到Neovim大概两天,后放弃,可能带有偏见 其实一句话来说,我觉得Neovim对开发人员的意义可能远大于对普通用户的意义。根据坊间消息,Neovim出现的主要原因是 VimL sucks; Vim codebase is ugly; Developer Community unfriendly 于是由这件事为导...
回答了问题2016-03-12
Graham所指的语言内核小而干净,在我看来,主要是指语言的rule较少,较为compact,而并非指语言之上的上层建筑(工具链,函数库,设计思想等等)。LISP是满足这个定义的,如果学过一点LISP便会知道,LISP的语言核心几乎可以在一个下午学会,这显然是担得起简洁,小,干...