- 博客(6)
- 收藏
- 关注
原创 windows下protoc的安装配置
1、下载protoc安装包(1)、上面是一种通过下载安装包的方式手动配置安装protoc的方式①、地址: https://github.com/protocolbuffers/protobuf/releases②、将解压后的包放在合适的地方,并在环境变量path中添加到PATH/protoc-3.19.1/bin(protoc.exe所在目录)③、检查版本:cmd—>protoc --version(2)、如果go的代理设置正确的话直接通过go get拉去到GOPATH下的bin目录里go
2021-12-27 18:53:29 12422 4
原创 golang数组与切片深度探究
前言golang的数组和C/C++没有什么大的区别,而且slice与C++的容器vector也有着一丝相似之处,下面来记录一下我学习完golang的数组和切片的一些收获。一、数组1.概念1.1golang里面的数组和其他语言没什么区别,是一个长度固定的数据类型,里面存储着一组具有相同类型的元素。存储类型可以是内置类型也可以是结构体类型。数组在初始化以后大小就不能改变了。1.2数组在底层的描述type Array struct { Elem *Type // element type Bou
2021-08-18 16:38:18 542
原创 地址的强制转换和大小端的两种求法
地址的强制转换和其转换的类型有很大的关系下面来看《C语言深度解剖》上面的一道很有意思的题。int main(){ int a[4]={1,2,3,4}; int *ptr1=(int*)(&a+1); int *ptr2=(int*)((int)a+1); printf("%x,%x",ptr1[-1],*ptr2); return 0;}问:在X86系统下,其输出为...
2019-12-10 15:13:24 690
原创 结构体中的内存对齐
#为什么要存在内存对齐?1.性能原因数据结构应该尽可能的在自然边界上对齐,为了访问未对齐的内存,处理器需要进行两次内存访问,而对于对齐的内存只需要一次访问。2.平台原因不是所有的硬件平台都能访问任意地址上的任意数据。#内存对齐的规则1.第一个成员在与结构变量偏移量为0处。2.其它偏移量要对齐到某个数字的整数倍的地址处(对齐:放入变量的起始偏移量如果能够整除对齐数则称为对齐)。3.结...
2019-12-10 11:49:22 129
原创 signed char型数据的存储
前天在《C语言深度解剖》这本书上看到了一个有意思的代码。int main(){ signed char a[100]; int i; for(i = 0, i < 1000, i++) { a[i] = -1 -1; } printf("%d",strlen(a)); return 0;}这个问题要想解出有两个关键点:1.signed char型表示的值的范围是...
2019-11-19 13:18:35 778
原创 时间复杂度&空间复杂度
时间复杂度其实说白了讲吧,算法的时间复杂度就是算法的执行次数。当讨论一个程序的运行时间时,注重的不应该是该时间的具体值,而是该时间的增长率,在一个算法中将该算法的原操作重复执行的次数与问题规模n之间的关系记为函数f(n)f(n)f(n)。随着问题规模的增大,它的增长率与f(n)f(n)f(n)的增长率相近,它们在数量级上保持一致。因此当问题规模n趋于无限大时,把$\f(n)的数量级称为算法的时...
2019-01-23 17:12:38 191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人