根据大家意见自学C (2014/04/11进度)(正式C学习,但有问题)

  • 長相思
    马克华菲
  • T
    TG春上春
    Turbo C 2.0, 俺的最爱. :D

    ...........
    顺便说一句, 楼上那一大堆不懂装懂的就别冒充码农了.

    [本帖最后由 TG春上春 于 2014-1-13 21:29 编辑]
  • h
    henvelleng
    首先深入理解操作系统这本书不是什么“深入理解”,书名上也没有深入理解这样的词。其次你要拥有这本书所需的c语言知识的话,一般的c教程帮不了你,全部太浅
  • 心御剑
    看起来很高端
  • l
    lizitaisha
    不明绝厉骂了各科
  • j
    jiejieup
    http://www.compileonline.com/compile_c_online.php在线c编辑和运行环境,不用在自己机器上折腾开发环境了。你就随便了解了解c,我想在线的c编译器够用了。
  • j
    joachim
    锻炼大脑
  • h
    hourousha
    画直线用的是绘图库,和VS有关吗我说?你在linux下画线照样得用绘图库,拿这个举例说明VS不适合初学者,真是莫名其妙。
    如果你是想学习图形学相关的,那么最直接的就是实现个软件渲染器,这玩意也就最后一步把framebuffer的东西显示到屏幕上,需要和windows或其他系统相关的API打交道(其他的绝大部分都是和OS无关,和图形学本身有关的),你告诉我就这点东西太难初学者搞不定?这水平的初学者也别继续学编程了。

    [本帖最后由 hourousha 于 2014-1-13 22:34 编辑]
  • k
    kh2841
    没有IDE的参数提示写程序一准累死,楼上建议notepad的弟兄都没写过程序吧?还有断点调试要怎么处理?
  • h
    henvelleng
    没人建议用notepad啊,sourceinsight也算是文本编辑器

    编译有编译器,链接有链接器,调试有调试器,还有nm,valgrind等各种工具,IDE并不是必须的
  • s
    somesun
    posted by wap, platform: Meizu (MX3)

    没有IDE的参数提示写程序一准累死,楼上建议notepad的弟兄都没写过程序吧?还有断点调试要怎么处理?

    ==================

    喷了, 你觉得unix, linux怎么开发出来的,再说vim+gdb效率只有更高
  • 趴趴熊
    多谢LZ
  • f
    ffcactus
    多个源文件如何编译成一个可执行文件;怎么生成动态库,怎么安装,怎么使用库;一个项目的目录结构如何设置;等等还有很多这些VC全部都隐藏了。却暴露了一大堆Windows系统需要添加的什么头文件啊,库啊之类的东西。
    我看到很多人会用VS完成个对话框,却不知道怎么生成由2个源文件组成的 HelloWorld。
  • f
    ffcactus
    VS是个集成环境,它适合于 1.这个项目本来就是用VS来做的。 2.你根本就不想知道任何细节,只想照着例子敲下代码再点生成。
    当然了,你就把VS当一个编译器的话那当我没说。
    那么多学C语言的书,哪个不是推荐初学者首先用纯文本+gcc+gdb? 难道你们的建议比那些大师们还值得听取?
  • d
    deadpuppet
    10年C/C++码畜给帖子里的各位C语言大师们跪了。。。
  • T
    TG春上春
    虚拟内存大神您好. 看您谈这些真让人觉得回到了高中时代.
  • b
    banditcat
    posted by wap

    囧。。。。。。。
  • h
    hourousha
    就你这逻辑还能写程序真是TM令人发指。
    麻烦你找出来我哪说一定要用VS来学了?我建议什么啦你来说说?还你们你们的,冒什么傻气呢?我说的是你举出那个画线的例子来说明VS太复杂不适合初学者,属于脑子有洞,说不好听点,能说出这话的根本不像学过程序写过程序的。
    再说明白点:
    VS很复杂,初学者搞不定:这个结论没准是对的。
    因为某夸夸其谈的主儿画个线都挺费劲,所以说VS很复杂,初学者肯定搞不定:这推理显然属于放屁。
    明白了没?
    还大师们说呢,我看你就挺大师的,还用VS就是不想知道任何细节只想照着例子敲代码再点生成的。还能再傻点吗你?别的不说,敢情PS360的程序是TM照着例子敲代码生成的货?
    要让我说,对于初学者,爱用什么学就用什么学,学的好不好和用啥开发环境关系真不大,这玩意关键看个人。你说有人连手动编译链接生成个Hello World!都不会,这种人当然可能存在,你这样的不也存在了吗?

    [本帖最后由 hourousha 于 2014-1-14 00:19 编辑]
  • h
    henvelleng
    想起来了,LZ说的到底是哪本书?不是那本ULK?
  • a
    alexacc
    GNU Make项目管理
  • f
    ffcactus
    你说用Java开发环境画条直线难还是用VS难?
    连别人要表达什么意思都听不懂,你这人智力明显有硬伤。

    本帖最后由 ffcactus 于 2014-1-14 08:35 通过手机版编辑
  • n
    nierdaye2
    我也想学
  • 刘泪
    楼主马上就要被你们带到坑里去了……
    你们能不能好好看看人家楼主的需求:
    1.楼主现在是在用windows
    2.楼主现在只是为了看一本并没有用到很高深的C语言知识的书……

    还有反感IDE的,有多少人工作中开发项目不用IDE?
    顺便给你们讲一个前同事那里听来的事:曾经有位小朋友很好学,在上班的时候倒腾vim,然后……被开除了……
  • 刘泪
    天哪……你你还在以为用vs画线很难么?
    先生,你听说过gdi么?
  • 刘泪
    VIM的项目管理能力堪忧……拜托,这东西本来就是个编辑器,虽然被各路人马折腾了几十年,但是其实它还是个编辑器而已
    开发个把helloworld倒是真的可能会快一点,文件多了就要发疯了。
  • c
    cc0128
    ff大神的思路我一直跟不上。
    画直线为啥vs更难。
  • f
    ffcactus
    是你被代进入了,没人说不要用IDE,而是说初学编程的人不要一上来就用IDE。
    再说了楼主是以深入理解操作系统为目的,那就应该立刻放弃Windows平台。
  • 刘泪
    人家楼主明明是以上厕所看书为目的,学C语言是为了不会因为看到某段看不懂的C代码而急得便秘

    明确地说,初学编程用不用ide都一回事,ide的快速跳转和语法提示能很节省很多不必要浪费的时间。你要真是过目不忘,看到一个函数就记得它在什么地方定义过,参数是什么那当我没说。vc的debug功能是不如gdb,但是对初学者来说,在浅显易懂方面秒杀gdb

    想了想,楼主说不定给大家挖了个大坑啊,这边说是初学c语言,但是说不定是c#/java/py/ruby大师呢……真正的初学者上来就抱着操作系统的书太匪夷所思了

    [本帖最后由 刘泪 于 2014-1-14 09:24 编辑]
  • f
    ffcactus
    你说楼主是在看深入理解操作系统的书,并说发现不理解C就无法理解里面的内容。几乎可以肯定的说,楼主就是看那些深入理解Linux内核的书。
    那到底要不要学习VS应该可以定论了。不要。
  • w
    wakiki
    这年头还用VC6, 用个VS2012 express不好吗
  • 备常炭
    2014 年最缺心眼贴

    尤其是顶级程序员ff大神上蹿下跳真是一出好戏
  • 7
    79859899
    完全初学, 我就对各种玩意儿的原理特别感兴趣,刚把绘画的一些原理看完,前年看了查尔斯的编码,最近偶然在亚马逊看到了深入了解操作系统这书,手欠买了;我蹲厕所的时候喜欢找些杀时间的书看,因为不爱玩游戏,坐着也无聊,
  • 刘泪
    学习C语言需要学习vs?
    F5F7F10F11这么复杂的事倒是真要好好参详融会贯通一下。
  • 刘泪
    如果是这样的话,你这学习曲线太跳跃了……
    操作系统原理的学习应该是学习到一定程度后自然而然的阶段,至少也是在某一特定操作系统上有一定的开发经验后的事,认识多少开发了多少年端游的哥们都还没有这个需求。在没有特定需求的前提下看书很没效果的。
  • 7
    79859899
    属于癖好,别人喜欢打游戏看小说杀时间,我喜欢看看各种理论,还有造物小百科 流言终结者 之类杀时间
  • 刘泪
    好吧……
  • 被K汉姆
    学着玩可以考虑oc 弄点ios小程序来玩
  • f
    ffcactus
    你去试一下不就好了嘛,前提是你没用过VC (没用过VC自然也就没用过VS)。
  • i
    iceliking
    我觉得先要搞清楚自己学编程的目的是什么吧

    作为一名程序员,起码要理解层次的概念,从芯片、驱动、bsp、操作系统、协议栈、上层软件(几乎所有面向对象语言,图形化,游戏、网页)

    楼上大家吵的火热的PHP、python、java都在上层软件,所有程序员里95%大概也在这个层次,码农也大部分在这里。这个层面的软件有图形化界面,一台pc就可以开发,实用性强,门槛低,但能靠这个拿高薪的其实不多。因为门槛太低。

    而c/linux/显然属于底层架构,大部分都需要和特定的硬件设备打交道,在家里既缺乏开发环境,也索然无味,必须在公司里做项目才学的进去,但底层岗位有限,并不是人人都有这个机会,对于立志做这个层面的,我建议学好c语言基本语法,肯几本操作系统原理的书,去相关公司应聘就可以了,只有天分和学历不是太低,还是有机会的。但千万别指望自己在家能无师自通,除非认为自己是卡马克级别的。
  • h
    hourousha
    看来这位是真傻缺。一开始说IDE和系统,现在又TM开始扯java了233,java和vs是一个层面的东西吗?你最起码说明用的是VS里的哪种语言开发环境吧,CPP、CPP/CLI、CLR还是什么别的,拿java和vs比是一种什么精神病?我回复你都TM多余。
    还java画线和VS比哪个难喷了,就算把这个VS限制在VC++上,稍微知道点GDI或GDI+的主儿都问不出这问题。大概用HWND创建个DC或Graphics真是难为你了,没写过超过10行的代码吧你?
  • 刘泪
    为了验证一下vc画线到底有多难,我刚刚查了下msdn然后写了个(以前没这种需求,这个就从来没记过)……
    #include <Windows.h>
    int main()
    {
    HDC dc = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);
    while (1)
    {
    MoveToEx(dc, 400, 100, NULL);
    LineTo(dc, 200, 300);
    LineTo(dc, 400, 500);
    LineTo(dc, 200, 700);
    MoveToEx(dc, 600, 100, NULL);
    LineTo(dc, 600, 700);
    LineTo(dc, 800, 700);
    LineTo(dc, 800, 500);
    LineTo(dc, 600, 500);
    }
    DeleteDC(dc);
    return 0;
    }

    采用vc编写,使用mingw编译通过,该死的vc10之后(即vc2012和vc2013)编出来的和xp不兼容,只有win7(vista可以也行)及以上的系统才能运行

    [本帖最后由 刘泪 于 2014-1-14 11:08 编辑]
  • f
    ffcactus
    用JAVA画条直线难,还是用VC画条直线难, 这下你听懂了吗?
    别人说宏观的时候, 你说微观。 别人说微观的时候你扣字眼。 你真的好有空。
  • h
    hourousha
    这位傻到就剩满地蹬腿了,233……
    只需要添两行代码的事问我难不难,我去。
  • h
    henvelleng
    是的,所以说理解操作系统所需要的c语言和那些面向应用层的c语言是不同的。需要知道链接的细节,符号表的概念,段的概念,如何自定义段,mmu的页表映射方式以及页表项对于cache和buffer的控制,而且起码要懂一种汇编。仅停留在c标准的东西是不够的
  • 黑暗骑士巫妖王
    我觉得你对vim的偏见太大了,另外vim在牛逼的插件下对大量文件毫无压力。vim确实就是编辑器而已,但是是这个星球上编辑器前三。

    当然ide和编辑器都有其适用范围,光吹嘘一个无敌肯定是有问题的
  • c
    cc0128
    关键是得学多久?
  • 黑暗骑士巫妖王
    vim的话,我自己用它写了5,6个html就会了

    看oschina很多人差不多也是这么个时间吧,至于学不会的你们坚持到了用这玩意写几个文件这个程度了吗?
  • d
    dirlee
    我觉得LZ一时兴起吧,想有成就感快速出成果就不到折腾C了,有无IDE都一样
    耍耍python之类的好过
  • 黑暗骑士巫妖王
    上手快还是VC吧,国内市面上学C之类的书籍绝大部分都是基于这玩意的。

    长期写代码的学点VIM、Emacs还是有点用处,一个是绿色顺手跨平台,另一个是各类主流编辑器/IDE基本都有VIM或者Emacs的快捷键方式,而且VIM/Emacs的快捷键确实有其独到之处,要想写代码的速度提升到一个更高的地步我个人觉得这是一个很大的推动,学会一次受益终身。