C语言那点事儿~

软件和网站开发以及相关技术探讨
头像
szyzln
帖子: 910
注册时间: 2008-10-31 15:28
来自: 中国上海
送出感谢: 0
接收感谢: 1 次
联系:

Re: C语言那点事儿~

#46

帖子 szyzln » 2014-02-15 8:58

懒蜗牛口才不错哈
家乡:湖南张家界
头像
ywmy210
帖子: 252
注册时间: 2010-10-14 12:54
送出感谢: 25 次
接收感谢: 0

Re: C语言那点事儿~

#47

帖子 ywmy210 » 2014-03-29 20:46

没想到一下子都看完了。。蜗牛还是一如继往的有才。。
头像
懒蜗牛Gentoo
论坛版主
帖子: 7312
注册时间: 2007-03-02 17:36
送出感谢: 0
接收感谢: 96 次

Re: C语言那点事儿~

#48

帖子 懒蜗牛Gentoo » 2014-03-29 23:09

哎,一下子都看完了主要是因为写的太少了…… :em06
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
懒蜗牛Gentoo
论坛版主
帖子: 7312
注册时间: 2007-03-02 17:36
送出感谢: 0
接收感谢: 96 次

Re: C语言那点事儿~

#49

帖子 懒蜗牛Gentoo » 2015-02-23 17:33

在进行了大致的了解之后,图笨笨又找了几本专门讲汇编指令的书,然而面对这一本本书,图笨笨认得上面的每一个文字,却实在无法理解他们组合在一起后说的是什么。这汇编真比非洲土著语言还难看懂,而且汇编似乎还不是一种,有什么intel风格的,和AT&T风格的。intel风格的类似这样:

代码: 全选

instr   foo,segreg:[base+index*scale+disp]
mov     eax,[ebx+20h]
add     eax,[ebx+ecx*2h]
lea     eax,[ebx+ecx]
sub     eax,[ebx+ecx*4h-20h]
AT&T风格的类似这样:

代码: 全选

instr    segreg:disp(base,index,scale),foo
movl    0x20(%ebx),%eax
addl     (%ebx,%ecx,0x2),%eax
leal      (%ebx,%ecx),%eax
subl     -0x20(%ebx,%ecx,0x4),%eax
总之是很头疼的,跟汇编相比,图笨笨顿时觉得C语言是如此的平易近人,如此的通俗易懂。

就比如变量吧。汇编里面基本就没这个概念,汇编都是寄存器、内存地址。变量,其实咱们之前也提到了,就是在内存空间里面存着的一段数据。申明一个变量,就意味着告诉计算机,给我一块空间,存一个数,并且给这个数起个名字,就是变量名,以后再访问起来,就方便了。C语言里的变量有很多种,大体上可以分为两类:简单变量和不简单的变量^_^
先说说这简单的吧,包括short,int,long,char,float,double这几个类型。
short类型能够表示一个比较小的整数,int也是整数,但是可以比short大一些。long型还是整数,但是可以比int更大。char型存储的是一个字符,float是一个浮点型数据,说简单了吧,就是带小数点的数。double是双精度浮点型,就是可以比float小数点后面的位数多。那说了这么半天,这些个类型到底能存多大的数呢?这个跟具体的平台有关。
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
懒蜗牛Gentoo
论坛版主
帖子: 7312
注册时间: 2007-03-02 17:36
送出感谢: 0
接收感谢: 96 次

Re: C语言那点事儿~

#50

帖子 懒蜗牛Gentoo » 2015-02-23 21:52

通常根据C语言标准,char型表示字符,通常来说是1个字节,但是没有硬性规定必须用8个二进制位来存储,你的CPU架构或内存设计成了只能16位16位的存储,那你用16个bit来表示char也没人管你。(但是你必须保证sizeof(char)=1)short型是短整型变量,int是整型变量,long是长整形变量。C语言标准只规定了short的长度必须小于等于int,long的长度必须大于等于int,没有规定具体多长。通常在32位平台上(32位cpu或64位cpu上运行的32位系统),int型占4个字节,short型占2个字节,long型……很奇葩,也占4个字节。(也就是说如果在32位平台,你定义了一个int型变量来记录你缺点的个数,后来发现不够,于是试图改为long型,那你的企图是必然失败的。)如果是64位平台,int型为了兼容以往的程序,依然是4个字节,long型变成了8个字节。
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
月下叹逍遥
论坛版主
帖子: 33994
注册时间: 2010-10-07 14:23
系统: Archdows10
来自: 某系某星某洲某国某省某市
送出感谢: 8 次
接收感谢: 64 次
联系:

Re: C语言那点事儿~

#51

帖子 月下叹逍遥 » 2015-02-23 22:20

蜗牛太监了一年了。。。
心似浮云常自在,意如流水任东西。
此事背后一定有个天大的咪咪
广告:
1、走过路过,不要错过,dropbox网盘2.25G大放送
py大法好,退C保平安
java多妖孽,VB本异端
日诵一千遍,快活似神仙
头像
懒蜗牛Gentoo
论坛版主
帖子: 7312
注册时间: 2007-03-02 17:36
送出感谢: 0
接收感谢: 96 次

Re: C语言那点事儿~

#52

帖子 懒蜗牛Gentoo » 2015-02-24 16:15

去年事情比较多(话说今年事情也不见得少…… :em20
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
YeLee
论坛版主
帖子: 26388
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
送出感谢: 25 次
接收感谢: 307 次
联系:

Re: C语言那点事儿~

#53

帖子 YeLee » 2015-02-25 12:12

一年了,这帖子还活着啊。 :em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
懒蜗牛Gentoo
论坛版主
帖子: 7312
注册时间: 2007-03-02 17:36
送出感谢: 0
接收感谢: 96 次

Re: C语言那点事儿~

#54

帖子 懒蜗牛Gentoo » 2015-02-25 13:55

YeLee 写了:一年了,这帖子还活着啊。 :em01
复活~ :em06
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
懒蜗牛Gentoo
论坛版主
帖子: 7312
注册时间: 2007-03-02 17:36
送出感谢: 0
接收感谢: 96 次

Re: C语言那点事儿~

#55

帖子 懒蜗牛Gentoo » 2015-02-25 18:08

在图书馆看书的时候,图笨笨发现,在C语言里面使用的变量,有各种各样的类型。根据变量的不同,所在的内存空间也不大一样。可是手上这本盗版的谭咏麟写的C语言程序设计里又说的不明不白。无奈拿着书,去图书馆“网吧”查查去吧。不查还好,一查,一大堆概念扑面而来。有什么堆啦,栈啦,code区啦之类的。一堆千奇百怪的名词,顿时一下子充斥在图笨笨大脑的每一条神经里,堵塞着本就不算宽敞的思考的通路。于是图笨笨想找个人来给他疏通一下。

图笨笨估计在这个时间,李那厮那家伙肯定又在忙着编译啥新奇的软件;麦金塔同学夹着他的笔记本不知道在哪个角落coding;温豆豆准会在宿舍但一定是在dota——总之,那三个家伙是靠不住的,还是找别人帮忙吧。所幸网络上面的高手还是很多的,图笨笨登陆了一个关于C语言开发的论坛,发个帖子提问一下。找大牛给讲讲啥叫堆,哪个叫栈。很快,就有个热心的牛人回复了,这位牛人叫做FreeBSD:to be continue...
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46
送出感谢: 3 次
接收感谢: 120 次

Re: C语言那点事儿~

#56

帖子 rosynirvana » 2015-02-25 19:14

原来蜗牛还有这个大作

根据Ritchie论文中的说法,C语言名称的由来他不想给出统一的说法,随你们觉得是BCPL的第二个字母,或者B后面是C(原话是leave it to open discussion)
char规定了必须一个字节,sizeof(char)必须是1,但是一个字节不要求8个二进制位(C++就是规定多少多少二进制位了)
头像
懒蜗牛Gentoo
论坛版主
帖子: 7312
注册时间: 2007-03-02 17:36
送出感谢: 0
接收感谢: 96 次

Re: C语言那点事儿~

#57

帖子 懒蜗牛Gentoo » 2015-02-25 22:30

rosynirvana 写了:原来蜗牛还有这个大作

根据Ritchie论文中的说法,C语言名称的由来他不想给出统一的说法,随你们觉得是BCPL的第二个字母,或者B后面是C(原话是leave it to open discussion)
char规定了必须一个字节,sizeof(char)必须是1,但是一个字节不要求8个二进制位(C++就是规定多少多少二进制位了)
原来还有这个规定啊,谢谢指点。已经修改原文
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
qgymib
帖子: 539
注册时间: 2010-04-02 16:44
系统: openSUSE 13.2 x64
送出感谢: 2 次
接收感谢: 9 次

Re: C语言那点事儿~

#58

帖子 qgymib » 2015-02-26 17:43

一个很小的笔误:
long的长度必须小于等于int
应该是long的长度必须大于等于int吧
正在建设中的个人博客
头像
懒蜗牛Gentoo
论坛版主
帖子: 7312
注册时间: 2007-03-02 17:36
送出感谢: 0
接收感谢: 96 次

Re: C语言那点事儿~

#59

帖子 懒蜗牛Gentoo » 2015-02-26 21:14

qgymib 写了:一个很小的笔误:
long的长度必须小于等于int
应该是long的长度必须大于等于int吧
谢谢,已更正。
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
jinjiachen
帖子: 2132
注册时间: 2012-12-16 15:43
系统: debian
送出感谢: 9 次
接收感谢: 27 次

Re: C语言那点事儿~

#60

帖子 jinjiachen » 2015-02-26 22:01

很好啊,coding一点不枯燥了,希望继续啊 :em11
回复

回到 “软件/网站开发”