使用Cgo的一点总结

今天想给一个C库写一个Golang binding,就查了一下cgo的使用,也遇到了一些坑。cgo的基本使用想在Go代码中使用C语言必须在代码开头注释中写,然后再紧接着的下一行写import "C",这样就算是导入完成了。这个”C”不是一个真正的包,而是一个类似于命名空间的东西,所有能调用的C的变量、函数都包含在里面。举个最简单的例子这个例子展示了cgo的基本使用方法。开头的注释中写了要调用的函数和相关的头文件,头文件被include之后里面的所有元素都会被加入到”C”这个命名空间中。需要注意的是,import "C"必须单独一行,不能与其他包一同import。向C函数传递参数也很简单,就直接转化成对应类型传递就可以。如上例中C.CString强制类型转换将一个字符串转化为了C字符串然后传递给了print函数。需要注意的是,Go是强类型语言,所以cgo中传递的参数类型必须与声明的类型完全...阅读全文

关于int的取值范围(有种背下来)

unsigned int 0~429496729int -2147483648~214748364unsigned long 0~429496729long -2147483648~214748364long long的最大值:922337203685477580long long的最小值:-922337203685477580unsigned long long的最大值:184467440737095516__int64的最大值:922337203685477580__int64的最小值:-922337203685477580unsigned __int64的最大值:1844674407370955161原文链接:http://blog.csdn.net/niuox/article/details/823194阅读全文

禁止tmux窗口自动命名

关于tmux的多窗口,用起来可谓非常方便。但,也许在默认的tmux配置下,一样和我被一个小问题困扰。那就是,tmux的窗口名称总是会随着执行的命令不同而变动。关于这一点,可用如下的方式来解决更改tmux配置文件打开~/tmux.conf文件,增加(或修改)如下内容更改oh-my-zsh配置文件当然,如果你在用oh-my-zsh的话。那么,还需要进行如下修改打开~/.zshrc文件,增加(或修改)如下内容参考文章:https://stackoverflow.com/questions/38543763/tmux-will-not-stop-auto-renaming-window阅读全文

3年PHPer的面试总结

之前看到一篇文章《八年phper的高级工程师面试之路》,然后最近我也在面试,面了有百度、360、滴滴、小米、微博、58赶集、搜狗、瓜子二手车等公司,最后也进了心仪的公司,面试过程中学到了很多东西,所以也想和大家分享一下,虽然我的工作经验才3年左右。 注:下面题目的答案只是我思考和查询资料的结果,并不代表完全准确,有错误的地方大家可以指正,有更好的方案可以提出,大家一起讨论。算法1.反转函数的实现2.两个有序int集合是否有相同元素的最优算法3.将一个数组中的元素随机(打乱4.给一个有数字和字母的字符串,让连着的数字和字母对应5.求n以内的质数(质数的定义:在大于1的自然数中,除了1和它本身意外,无法被其他自然数整除的数思路: 1.(质数筛选定理)n不能够被不大于根号n的任何质数整除,则n是一个质数 2.除了2的偶数都不是质数 代码如下6.约瑟夫环问题相关题目:一群猴子排成一圈,按1,...阅读全文