alloca

Posted by 夏泽民

内存分配函数,与malloc,calloc,realloc类似. 但是注意一个重要的区别,_alloca是在栈(stack)上申请空间,该变量离开其作用域之后被自动释放,无需手动调用释放函数。 包含在头文件malloc.h中。 在某些系统中会宏定义成_alloca使用。 在调用 alloca的函数返回的时候, 它分配的内存会自动释放。 也就是说, 用 alloca 分配的内存在栈上。 alloca不具可移植性, 而且在没有传统堆栈的机器上很难实现。 当它的返回值直接传入另一个函数时会带来问题,因为他分配在栈上. 由于这些原因, alloca不宜使用在必须广泛移植的程序中, 不管它可能多么有用。 既然 C99 支持变长数组(VLA), 它可以用来更好的 完成 alloca() 以前的任务。



类型系统

Posted by 夏泽民

类型系统被采用并被作为类型检查的一种手段,从二十世纪五十年代的FORTRAN语言编译器就已开始。采用类型论(type theory)观点的编程语言类型系统的研究,在软件工程、编程语言设计、高性能编译器和网络安全等方面都有重要应用. 2.类型系统(type system) 2.1定义



go 类型系统

Posted by 夏泽民

值语义和引用语义 值语义和引用语义的差别在于赋值:



从机器语言到高级语言的原理

Posted by 夏泽民

一、前言 每个编程语言都存在变量类型和类型之间的转换问题,一般很多书籍都提供了类型之间怎样进行转换的知识,但是很少介绍这些类型转换的背后原理。有人会问,我只要知道怎样进行转换这些类型就可以了,有必要了解这些知识么?我的觉得还是很有必要了解,只有了解了这些类型转换的原理,我们在编程时才能避免一些坑。例如:



内存分析

Posted by 夏泽民

golang pprof 当你的golang程序在运行过程中消耗了超出你理解的内存时,你就需要搞明白,到底是 程序中哪些代码导致了这些内存消耗。此时golang编译好的程序对你来说是个黑盒,该 如何搞清其中的内存使用呢?幸好golang已经内置了一些机制来帮助我们进行分析和追 踪。



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required