2 labuboco labuboco 于 2016.03.12 23:10 提问

关于C语言基础概念问题

刚才迷茫在static的使用,于是看到下面的解释觉得好棒!我在看的C语言程序设计并没有如此详细的解释,谁能推荐一本类似于解释原理的书,就像下图中那种的,告诉你一些名词解释,代码被读取后在系统中如何被分析,被使用?感激之情将溢于言表!图片说明

7个回答

Chely_Yi
Chely_Yi   2016.03.12 23:42
已采纳

以前在图书馆看到过一本叫做 你必须要知道的C256个问题 (大概是叫这个) 里面都是一些很基础的名词解释 或者一些容易弄混淆的知识点

Chely_Yi
Chely_Yi 回复labuboco: 嗯嗯
接近 2 年之前 回复
labuboco
labuboco 回复Chely_Yi: 495个C语言问题![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/6.gif)
接近 2 年之前 回复
Chely_Yi
Chely_Yi 回复labuboco: 我看不到图哦
接近 2 年之前 回复
labuboco
labuboco 回复Chely_Yi: 没有256 只找到这个 是吗?![图片说明](http://img.ask.csdn.net/upload/201603/13/1457848937_561800.png)
接近 2 年之前 回复
u013370108
u013370108   2016.03.12 23:41

static对全局变量的修饰,可以认为是限制了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入static修饰之后,只能被本文件中函数引用此变量。

static对栈变量的修饰,可以认为栈变量的生命周期延长到程序执行结束时。一般来说,栈变量的生命周期由OS管理,在退栈的过程中,栈变量的生命也就结束了。但加入static修饰之后,变量已经不再存储在栈中,而是和全局变量一起存储。同时,离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。

static对函数的修饰与对全局变量的修饰相似,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用。

huang_hao_zi
huang_hao_zi   2016.03.12 23:28

c primer plus

yaoyuanxxgc
yaoyuanxxgc 这本书讲的很细,之前刚看过
接近 2 年之前 回复
luobo2305
luobo2305   2016.03.15 20:10

建议读一下《程序员的自我修养—链接、装载与库》

vectorgd
vectorgd   2016.03.13 11:47

提个建议:
要想真正掌握,就去做。
纸上谈兵都是瞎扯蛋。
同一个static,在不同情形:不同编译环境、不同版本、不同过程、不同对象中的定义与实际用途都可能不同,任何一本书都只能描述过去,没办法反映现在更没办法预测未来。
你手头有啥,就去掌握它,同它的特性,别相信书!

skyangel123
skyangel123   2016.03.14 08:23

学习一下由源代码到可执行代码的compilation process,尤其是链接过程,就不难理解static在不同地方的用处了

w1eix1iao
w1eix1iao   2016.03.26 15:35

《c和指针》这本书很不错(中文翻译的很棒),比如你很难想到"adc"[2]会输出什么。甚至可以这样写2["abc"].
关于static,我觉得有一个很好的例子。你在一个函数里面定义一个一千万长度的int型数组,编译时会报错。然后做一点修改,在数组前面加个static。
就能顺利通过了。这个例子可以很深刻的说明static型的数据是单独放到一块内存中的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!