c语言
flowers_筱筱
这个作者很懒,什么都没留下…
展开
-
c语言编程实现十进制到十六进制的转换
源代码如下:调试结果如下图所示:原创 2017-06-26 16:52:11 · 4735 阅读 · 2 评论 -
栈(stack)与堆(Heap)的区别
Heap是栈,stack是堆stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。stack空间有限,Heap是很大的自由存储区C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。程序在编译期对变量和函数分配内存都在栈上运行,且程序运行过程中函数调用时参数的传递也是在栈上进行的。原创 2017-07-25 14:56:08 · 437 阅读 · 1 评论 -
c语言 作用域、链接、存储期
作用域: 作用域描述程序中可访问标识符的区域。一个C变量的作用域可以是块作用域、函数作用域、函数原型作用域或文件作用域。块是用一对花括号括起来的代码区域。例如,整个函数体是一个块,函数中的任意复合语句也是一个块。定义在块中的变量具有块作用域,块作用域变量的可见范围是从定义处到包含该定义的块的末尾。另外,虽然函数的形式参数声明在函数的花括号之前,但是他们也具有块作用域,属于函数体原创 2017-07-26 17:22:34 · 436 阅读 · 0 评论 -
C当中关于sizeof(struct)和sizeof(union)计算
一般32位机子上各个数据类型所占的存储空间如下:char:8位 short:16位int:32位long:32位float:32位double:64位一、接下来先来看struct,结构体请牢记以下3条原则:(在没有#pragma pack宏的情况下)1、数据成员对齐规则:结构体(struct)的数据成员,第一个数据成员放在offset为0的地方,之后的每个数据成员存储的起始位置要从该转载 2017-07-27 10:44:41 · 846 阅读 · 0 评论 -
C语言编译过程浅析
前几天看了《程序员的自我修养——链接、装载与库》中的第二章“编译和链接”,主要根据其中的内容简单总结一下C程序编译的过程吧。我现在一般都是用gcc,所以自然以GCC编译hellworld为例,简单总结如下。 hello.c源代码如下:?[Copy to clipboard]View Code C123456[c] view plaincopyprint?<span styl转载 2017-07-27 11:19:15 · 506 阅读 · 0 评论