為什么要在Linux平臺上學C語言?用Windows學C語言不好嗎?

用Windows還真的是學不好C語言。C語言是一種面向底層的編程語言,要寫好C程序,必須對操作系統的工作原理非常清楚,因為操作系統也是用C寫的,我們用C寫應用程序直接使用操作系統提供的接口,Linux是一種開源的操作系統,你有任何疑問都可以從源代碼和文檔中找到答案,即使你看不懂源代碼,也找不到文檔,也很容易找個高手教你,各種郵件列表、新聞組和論壇上從來都不缺樂于助人的高手;而Windows是一種封閉的操作系統,除了微軟的員工別人都看不到它的源代碼,只能通過文檔去猜測它的工作原理,更糟糕的是,微軟向來喜歡藏著揶著,好用的功能留著自己用,而不會寫到文檔里公開。本書的第一部分在Linux或Windows平臺上學習都可以,但第二部分和第三部分介紹了很多Linux操作系統的原理以幫助讀者更深入地理解C語言,只能在Linux平臺上學習。




Windows平臺上的開發工具往往和各種集成開發環境(IDE,Integrated Development Environment)綁在一起,例如Visual Studio、Eclipse等。使用IDE確實很便捷,但IDE對于初學者絕對不是好東西。微軟喜歡宣揚傻瓜式編程的理念,告訴你用鼠標拖幾個控件,然后點一個按鈕就可以編譯出程序來,但是真正有用的程序有哪個是這么拖出來的?很多從Windows平臺入門學編程的人,編了好幾年程序,還是只知道編完程序點一個按鈕就可以跑了,把幾個源文件拖到一個項目里就可以編譯到一起了,如果有更復雜的需求他們就傻眼了,因為他們腦子里只有按鈕、菜單的概念,根本沒有編譯器、鏈接器、Makefile的概念,甚至連命令行都沒用過,然而這些都是初學編程就應該建立起來的基本概念。另一方面,編譯器、鏈接器和C語言的語法有密切的關系,不了解編譯器、鏈接器的工作原理,也不可能真正掌握C的語法。所以,IDE并沒有幫助你學習,而是阻礙了你學習,本來要學好C編程只要把語法和編譯命令學會就行了,現在有了IDE,除了學會語法和編譯命令,你還得弄清楚編譯命令和IDE是怎么集成的,這才算學明白了,本來就很復雜的學習任務被IDE搞得更加復雜了。Linux用戶的使用習慣從來都是以敲命令為主,以鼠標操作為輔,從學編程的第一天起就要敲命令編譯程序,等到你把這些基本概念都搞清楚了,你覺得哪個IDE好用你再去用,不過到那時候你可能會更喜歡viemacs而不是IDE了。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450263.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫中Schema(模式)概念的理解

在學習SQL的過程中,會遇到一個讓你迷糊的Schema的概念。實際上,schema就是數據庫對象的集合,這個集合包含了各種對象如:表、視圖、存儲過程、索引等。為了區分不同的集合,就需要給不同的集合起不同的名字,默…

linux系統中打rz命令后出現waiting to receive.**B0100000023be50

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 linux系統中打rz命令后出現 waiting to receive.**B0100000023be50 而沒有出現選擇文件彈出框是什么問題: 我本來用的是 gi…

golang學習之旅(2)- go的數據基本數據類型及變量定義方式

叮鈴鈴,這不有人在評論問下一篇何時更新,這不就來了嘛,😄 今天我們說說golang 的基本數據類型 基本類型如下: //基本類型 布爾類型:bool 即true 、flase 類似于java中的boolean 字符類型:s…

StackExchange.Redis 官方文檔(六) PipelinesMultiplexers

流水線和復用 糟糕的時間浪費。現代的計算機以驚人的速度產生大量的數據,而且高速網絡通道(通常在重要的服務器之間同時存在多個鏈路)提供了很高的帶寬,但是計算機花費了大量的時間在 等待數據 上面,這也是造成使用持久性鏈接的編程方式越來越…

開發優秀產品的六大秘訣

摘要:本文是Totango的聯合創始人兼公司CEO Guy Nirpaz發表在Mashable.com上的文章。無論是在哪個行業,用戶永遠是一款產品的中心,本文作者就以用戶為中心,為大家講述了六個如何為企業產品添加功能的秘訣。 隨著云計算的發展&#…

Spring Boot下無法加載主類 org.apache.maven.wrapper.MavenWrapperMain問題解決

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 引言: 在SpringBoot中需要使用mvnw來做相關操作,但是卻有時候會報出達不到MavenWrapperMain的錯誤信息&#xff…

【前端面試】字節跳動2019校招面經 - 前端開發崗(二)

【前端面試】字節跳動2019校招面經 - 前端開發崗(二) 因為之前的一篇篇幅有限,太長了看著也不舒服,所以還是另起一篇吧?一、 jQuery和Vue的區別 jQuery 輕量級Javascript庫Vue 漸進式Javascript-MVVM框架jQuery和Vue的對比 jQuer…

SpringBoot與SpringCloud的版本說明及對應關系

轉載原文地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

leetcode 8: 字符串轉整數(atoi)

實現 atoi,將字符串轉為整數。 該函數首先根據需要丟棄任意多的空格字符,直到找到第一個非空格字符為止。如果第一個非空字符是正號或負號,選取該符號,并將其與后面盡可能多的連續的數字組合起來,這部分字符即為整數的…

優秀產品頁設計:將訪問者轉化成客戶

摘要:本文是對外文《 Better Product Pages: Turn Visitors Into Customers 》的翻譯,編譯內容如下: 展示產品、服務的方法是其獲得成功的關鍵。在Web上,你留給用戶的第一印象是至關重要的。 如果有人訪問你的網站,一定…

計算機網絡學習方法

原文見:http://blog.csdn.net/qq_33506160/article/details/51872708 一、網絡課程究竟難在哪? 1.內容比較亂 如果把《計算機網絡技術基礎》看做是一本計算機網絡導論方面的教材,就不會認為亂了,因為導論就是為了解決知…

小程序類似抖音視頻整屏切換

更新 現在已經更新了github地址和效果gif,可在文章最后查看。如果我的代碼對你有用,請幫我隨手star一下。 需求 最近在項目中需要加一個功能,在小程序中將已有的短視頻功能,按照抖音的方式來瀏覽,整屏,可上…

Coding For Fun 32小時:充滿創造、激情、團結的編程馬拉松

摘要:Coding for Fun大賽是2012中國軟件開發者大會(SDCC)的重要環節。由六名黑馬學員組成的“天翼二隊”,經過32小時的“血拼”,憑大賽作品“語音控”,獲得了本次大賽的“最佳設計獎”。本文是該隊隊員的參…

centos6.8安裝oracle12C 詳細步驟講解

2019獨角獸企業重金招聘Python工程師標準>>> centos6.8安裝oracle12C 詳細步驟講解 安裝前環境配置 1 root身份安裝依賴包 [rootdlp ~]# yum -y install binutils compat-libcap1 compat-libstdc-33 compat-libstdc-33.i686 gcc gcc-c glibc glibc.i686 glibc-deve…

解決 springboot 項目:找不到或無法加載主類

Spring Boot下無法加載主類 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 我什么也沒有改,啟動服務報錯如題:找不到或無法加載主類 解決:什么也不…

管理好你的愿望,人生將另一個樣

別讓欲望控制了你欲望是人的本性。人生在世,誰都會有欲望。物欲、食欲、情欲、發財欲、求知欲……欲望是消防隊也無法撲滅的火。作為人,我們不能消除欲望,也不能讓欲望漫無邊際地增長,所以,我們應該把握好欲望的尺度&a…

25 模塊和包

今日內容 import from xxx import xxxx 金庸 1. 導入模塊的執行的步驟 2. 自定義模塊 3. 自定義包(難點) 一個表達式 -> 一條語句 -> 語句塊 -> 函數 -> 類 -> 模塊 -> 包 -> 項目 包就是我們的文件夾, 包內可以寫很…

【許曉笛】 EOS 智能合約案例解析(2)

詳解 EOS 智能合約的 cpp 文件 之前的文章介紹了 eosio.token 智能合約的 hpp 文件,這次向大家介紹 eosio.token.cpp 文件,cpp 文件即 C 代碼文件,智能合約所有的業務邏輯內容都是在 cpp 文件中實現的。 eosio.token.cpp 文件地址&#xff1a…

java 中 transient關鍵字

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 java語言的關鍵字,變量修飾符,如果用transient聲明一個實例變量,當對象存儲時,它的值不需…

java中int轉成String位數不足前面補零

java中int轉成String位數不足前面補零 轉載自:http://ych0108.iteye.com/blog/2174134java中int轉String位數不夠前面補零 String.format("%010d", 25); //25為int型 10代表前面要補的字符 10代表字符串長度 d表示參數為整數類型 今天想將int 轉String 位…