自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 interface

确保类型实现接口(依赖编译器) type Jedi interface { HasForce() bool } type Knight struct { } var _ Jedi = (*Knight)(nil) or var _ Jedi = new(Knight) func main() { } func (Knight) HasForce() bool { return f...

2019-09-19 21:31:12 111

原创 关于多返回值

a, err := test() if err != nil { println(a) } a, err := test()//错误 因为a和err变量都已经在上面声名 b, err := test()//正确,但是不会重新创建err,因为上面已经有了 //“_”不能作为返回值 //例1 var err error err = errors.New("")//1 if true {...

2019-09-19 21:29:26 153

原创 golang不安全指针

结构体的成员变量在内存存储上是一段连续的内存 结构体的初始地址就是第一个成员变量的内存地址 基于结构体的成员地址去计算偏移量。就能够得出其他成员变量的内存地址 unsafe.Pointer是一个指针类型 值不能被取消引用? 如果unsafe.Pointer变量仍然有效,则由unsafe.Pointer变量表示的地址处的数据不会被GC回收 实质是int类型 不可以参与指针运算 ui...

2019-09-19 09:05:51 356

原创 swoole学习笔记

swoole是php的一个扩展,主打高性能的网络编程扩展,由于扩展使用c语言编写,性能上会比php实现的框架快很多。而且因为swoole的内部实现给php提供了比apache+php更多的灵活性。接触swoole也已经有1年有余,在公司项目也使用了swoole为app提供功能服务。春节期间在家为了能更好的使用swoole,深入的了解内部实现,于是特别去阅读了swoole主要的核心源码。为了阅读c代...

2018-03-05 23:03:48 449

原创 guetzli图片压缩php扩展

前言:在github的发现一个谷歌开源的jpeg格式图片的压缩工具,它可以在主观质量无损的条件下, 将jpeg图片减少20%~30%的码率,于是当时测试了一下压缩效果,图片质量95压缩率大概在20%~30%。我们司平台是漫画阅读app,整个app除了图片还是图片,特别是首页,用了大量的高清无码的图片,于是我想将guetzli用于首页漫画封面图片的压缩,但是guetzli并没有提供php的接口,所以

2017-12-08 16:11:16 1341

原创 编译安装lmap环境

sudo apt-get install openssh-server(安装ssh服务后xshell才能进行连接) echo $?(这条命令可以检查配置是否有错误,返回0) libc++ 为LLVM 项目重新编写,包含C++ 11 标准库。 Libstdc++ 是标准的C++ 库。 g++ 编译器正确运行需要它。 zlib 是提供資料壓縮之用的函式庫 GLib是GTK+和GNOM

2017-12-08 09:33:49 587

原创 单例模式

class SingletonMode { //1.静态属性,用于存储new的对象 //2.因为是静态属性,所以在整个php生命周期会永久存在 private static $obj; //1.私有构造函数 //2.当前类只能在内部实例化,而无法在外部实例化 private function __construct() {} //getObj用于外部获取实例化的对象 //只能通过

2016-10-22 11:51:53 142

原创 const关键字

有关于const int *pId、int const *pId、int *const pId; const int *pId  //可以修改指针变量pId的值,但是不能修改指针变量pId指向地址的值 示例代码: int id1 = 20; int id2 = 60; const int *pId = &id1; //*pId = 100;   //报错 pId = &id2

2016-10-21 11:03:40 160

原创 基础知识

C语言的编译分为四个阶段:     .c文件->.i文件(预编译)  宏就是发生在预处理阶段单纯的字符串替换(宏不考虑C的语法)   linux下可以在编译命令后面加上 "-E"  意思是只执行预编译     .i文件->.s文件(编译)     .s文件->.o文件(汇编)     .o文件->可执行文件(连接) 变量的声明和定义 1、建立空间存储的声明称为定义,不需要

2016-10-21 11:02:07 142

原创 指针与数组

指针与数组 1、C语言在表达式中把一个类型为T的数组的左值当作是指向该数组第一个元素的指针。 2、一个数组就是一个地址,一个指针就是一个地址的地址。 3、对数组的引用如a[i]在编译时总是被编译器改写成*(a+i)。 4、把传递给函数的数组参数转换为指针是出于效率的考虑。 指针与数组并不相同      1、 数组和指针在编译器处理时是不同的,在运行时的表示形

2016-10-21 10:55:44 224

空空如也

空空如也

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

TA关注的人

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