冷知識大賽 Hello World 是在哈囉?
有沒有人納悶過為什麼凱心琳我每次開場都要講 "Hello World" 呢?
"Hello World"的由來是什麼?為什麼程式語言 C 要叫 C? 為什麼 C++ 要叫做 C++? JavaScript 跟 Java 之間的關係?電腦程式語言有多少種?電腦為什麼要有桌面?滑鼠游標為什麼是斜的?還有好多好多疑問!電腦科學軟體工程的世界中真的有很多奇怪的事,讓我們一起和軟體工程師 Tim (Richard?) & Kid大探究竟吧!
其實想做這一集已經很久了,題目也老早就準備好了~只是願意參與的工程師真的不多呀😂 感謝Tim跟Kid的用心參與!!
📢 📣 📢 本頻道影片內容有輸出成 podcast 📢 📣 📢
雖然這一集用 podcast 聽可能有點混亂,但還是有輸出成音檔唷!
可以在各大podcast平台搜尋「Untyped 對啊我是工程師」
請大家多多支持呀!!🙏🏻💁🏻♀️
這集會聊到...
Overview 💬
🔹 "Hello World"的由來是什麼?
🔹 為什麼程式語言 C 要叫 C?
🔹 為什麼 C++ 要叫做 C++? C#?
🔹 JavaScript 跟 Java 的關係是什麼?
🔹 printf 的 f 是什麼意思?
🔹 電腦程式語言有多少種?
🔹 電腦為什麼要有桌面?
🔹 工程師口中都是什麼蟲 bug? ?
🔹 滑鼠游標為什麼是斜的?
🔹 第一台電腦的名字?
🔹 PHP代表?
#php是個人快樂鬆餅 #HelloWorld是在哈囉 #冷知識大賽
一定要看到影片最後面並且在「YouTube影片下方」按讚留言訂閱分享唷!
每隔週星期四晚上9點更新,請記得開啟YouTube🔔通知!
-
【愛屋及烏】
YouTube 👉 https://www.youtube.com/c/Untyped對啊我是工程師
Podcast 👉 https://open.spotify.com/show/3L5GRMX...
Facebook 臉書粉專 👉 https://www.facebook.com/untyped/
Instagram 👉 https://www.instagram.com/untypedcoding/
合作邀約 👉 untypedcoding@gmail.com
-
Untyped 對啊我是工程師 - There are so many data types in the world of computer science, so are the people who write the code. We aim to UNTYPE the stereotype of engineers and of how coding is only for a certain type of people.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的工程師。
https://youtu.be/K7TFwEnuNEU
同時也有2部Youtube影片,追蹤數超過2萬的網紅Untyped 對啊我是工程師,也在其Youtube影片中提到,有沒有人納悶過為什麼凱心琳我每次開場都要講 "Hello World" 呢? "Hello World"的由來是什麼?為什麼程式語言 C 要叫 C? 為什麼 C++ 要叫做 C++? JavaScript 跟 Java 之間的關係?電腦程式語言有多少種?電腦為什麼要有桌面?滑鼠游標為什麼是斜的?還有...
「c語言printf」的推薦目錄:
- 關於c語言printf 在 Untyped 對啊我是工程師 Facebook 的精選貼文
- 關於c語言printf 在 紀老師程式教學網 Facebook 的最佳貼文
- 關於c語言printf 在 紀老師程式教學網 Facebook 的最佳解答
- 關於c語言printf 在 Untyped 對啊我是工程師 Youtube 的最佳貼文
- 關於c語言printf 在 史九87 SJ87 Youtube 的最讚貼文
- 關於c語言printf 在 【C 語言入門】2.3 - 將printf 或scanf 用在不同資料型別- YouTube 的評價
- 關於c語言printf 在 C/C++ printf 參數說明 的評價
c語言printf 在 紀老師程式教學網 Facebook 的最佳貼文
[熱門文章] 程式設計、重構、與其它任何東西的終極問答
"The Ultimate Question of Programming, Refactoring, and Everything"
網頁版: http://goo.gl/6jIcIp
PDF 版: https://yadi.sk/i/pBZqebxsr5Wyg
#Craftmanships #SoftwareEngineering #CPP #Refactoring #ProgrammingSkills
好的!遲交比不交好,今天的推薦文來了(笑)~
今天介紹這篇,是過去一個禮拜在國外鄉民聚集地 Reddit 程式設計版瘋傳的文章。標題很臭屁「The Ultimate Question of Programming, Refactoring, and Everything」(沒錯!我就在意它最後一個字 "Everything"。咬我啊! XD)。因為轉載的人實在太多,讓我不禁努力地把它看完了。
其實這篇文章講的是 C/C++ 程式寫作者應該注意、或建議遵守的 42 個小訣竅。既不「Ultimate(終極)」,也不是涵蓋「Everthing」。不過裡面還是有不少中肯的建議,所以我還是將它介紹給大家。
為了讓英文苦手的朋友也能稍微感受一下這篇文章在講什麼,所以我不負責任地快速翻譯了每個標題一下。如果對哪個主題有興趣的,就麻煩大家直接對照標題號碼去看原文解說。原文有些標題用「戲謔」或「隱晦」寫法,我若直接翻譯,大家可能不知道原作者想表達什麼。所以我會將某些標題,用比較易懂的中文重新表達。一切以「標題編號(1~42)」為準。
接下來就請享用我這個不負責任的翻譯了。有會錯原文意思的,還請各位留言在下方、然後鞭小力一點 XD。我會馬上修正的:
1. 不要去做編譯器會做的事情
如:用迴圈能存取 a[0] ~ a[9],就不要用「拷貝貼上」a[0], a[1], a[2]..., a[9] 來存取裡面的內容值。
2. 大於 0 不代表它等於 1
若文件告訴你某函數執行成功會傳回「大於0」的值、但目前這個大於0的值是「1」。請你寫程式的時候不要自作聰明地偵測「傳回值 == 1」當成成功,請乖乖遵照規格書用「傳回值 > 0」等於成功。因為將來的版本有可能還會傳回 2, 3...等其他值。
3. 當你拷貝貼上一段程式碼,記得檢查它的副本兩遍
有時候你拷貝貼上一段程式碼,會忘了去修改裡面一些不同的小數字,導致花了大把時間去檢查錯誤到底出現在哪裡。
4. 小心使用「? :」運算子。並記得多加括號
「? :」是 C/C++ 內常用的運算子。若您寫了一段這樣的原始碼「a - b?0:1」,您可能以為它是這樣運作的「a - (b?0:1)」,事實上,它是這樣運作的「(a-b)?0:1」。結論是,多加括號保平安。
5. 多用市面上有的工具來分析您的原始碼
市面上有些工具,如:原始碼靜態分析工具、原始碼排列工具...可以幫您在把原始碼送入編譯器前,就抓到錯誤。不過作者也提到,別以為倚賴這些工具,錯誤就不會發生。真正要減少錯誤還是得靠多讀規格書,增加程式寫作經驗才辦得到。
6. 確認您所有的指標,都已經轉型成整數型態
作者擔心,某些使用 64 bits 當成指標變數寬度的系統,到 32 bits 的機器內重新編譯時,會產生高位元組被截斷的慘劇。某些編譯器提供「uintptr_t」這個專門給指標變數使用的型態,會隨著編譯器所在的環境,自動調整指標寬度。
7. 別在迴圈內呼叫「alloca()」這個函數
萬一迴圈失控,alloca() 函數會霸佔大量記憶體無法釋放。建議事先在迴圈外霸佔一大塊足夠的記憶體,然後在迴圈內慢慢蠶食之。
8. 在「解構函數(Destructor)」內使用「例外處理(Exception)」是很危險的!
作者認為,在負責釋放記憶體、收尾等工作的解構函數,還去霸佔新記憶體作事情是不好的。若真的發生例外(Exception),直接「吃掉(Supress)」不要讓它出現在使用者面前可能還比較好。
9. 若你要比對字串結尾,請用 '\0' 代表
有些程式設計師因為 '\0' 其實就是數字 0,而在比對字串結尾時,直接使用 0 來比對字串結尾。作者認為這個習慣不好。
10. 請勿濫用 # ifdef
# ifdef 很好用,但很容易讓原始碼雜亂難讀。作者不會建議大家不要用,但他反對連可以用 if ~ else 解決的場合,都濫用 # ifdef。
11. 別把一堆運算子全都擠在同一列
多分成幾列,Debugger 可以比較容易指出發生錯誤的是在哪個環節。
12. 當你「拷貝貼上」程式碼時,特別注意「最後一列效應」
作者還是不太建議濫用拷貝貼上,他認為需要重複使用一段程式碼,不如好好考慮寫成稍有彈性的函數,然後重複叫用。此外,他建議大家去看「最後一列效應」這篇文章(連結在本文),並了解最後一列效應在拷貝貼上程式碼內,所扮演的角色。
13. 程式碼若很長,盡量多折幾列,然後排成像表格般一樣整齊(Table-style)
14. 好編譯器 + 好的寫碼習慣是不夠的
內文舉了個後括號「)」括錯位置,但編譯器抓不出來的例子。
15. 若有一堆意義相關的常數,請用 enum 括住它們
16. 「看我能把程式碼寫得這麼屌!」的炫耀寫碼心態不可取
寫程式碼要以「穩」「易讀」為主,不是把一些剛學不久,覺得很酷,但三個月後會忘個精光的技術用進程式碼內。
17. 想用程式碼把一塊資料清乾淨,最好把清除程式碼獨立拉出來成一個專屬函數
18. 你在一個語言行得通的方法,在另一個語言不一定行得通
19. 盡量用技巧避免在同一個類別內,建構函數彼此呼叫的情況
20. 讀檔時,只檢查有沒有讀到檔尾(EOF)似乎是不夠的
21. 正確檢查 EOF 的方法
22. 有比使用 # pragma warning(...) 來印錯誤訊息更好的方法,勿濫用
23. 如果你想取得字串長度,用函數自動幫你算,別用手算然後硬填數字上去
24. 請多使用 "override" 與 "final",它們會是你的好朋友
25. 別再把 "this" 指標跟 "nullptr"(空指標)拿來作比較
26. 小心使用 VARIANT_BOOL 這個陰險狡猾的東西
27. BSTR(Binary STRing)這個用於微軟 COM/Automation 技術中的資料型態,請小心使用
28. 能用函數把一段程式碼包起來重複用,就別用巨集包它(使用巨集函數的缺點多於優點)
29. 在迴圈或迭代程式碼間,使用 ++i,來取代 i++(i++ 編譯後的執行效能稍微差那麼一點)
30. wprintf() 函數的使用陷阱:Win32 印寬字元字串要用 %S(大寫),Win64 要用 %s(小寫)。
31. 陣列在 C/C++ 傳給函數時,並非是「傳值呼叫」(Call by Value)
32. 要把檔案內的文字直接印在螢幕上時,請不要直接使用 printf() (怕檔案內夾雜 % 開頭的字,這些字對 printf 是有特殊意義的)
33. 想對一個指標取值(亦即:*p),記得檢查它是否為 NULL。否則你對 NULL 取值會導致系統出錯的
34. 別以為 int 的上限 21億+ 很多,在 64 bits 系統中,這個數字很容易爆掉
35. 若您把 enum 常數與 switch~case 連用,增加新元素進 enum 時也別忘了加新 case 進 switch
36. 如果有怎麼抓都抓不出來的 bugs,記得往「記憶體」的方向去思考(32bits vs. 64bits 之類的問題)
37. 在 do~while() 內用 continue 指令要小心,有可能會跳過你放在底部的「更新條件」,導致無窮迴圈
38. 對於指標,請用 nullptr 代替 NULL,這是新的 C++ 規格書希望您遵循的
39. 試著別把一列式子搞得太複雜,這樣比較不會有「咦?為何這段寫錯的程式碼居然可以運作」的問題出現
40. 開始使用「原始碼靜態分析工具」吧!
41. 別為了要使用某函式庫的一個函式,而引進整個函式庫。如果只用了一個函式,建議自己寫比較容易維護。
42. 別再用 empty 這個曖昧的字眼當函數名稱了。用 erase(), clear() 都比 empty() 好。
如果您覺得小弟翻譯了這麼多,沒有功勞也有苦勞,那就麻煩按個讚犒賞小弟一下吧!當然歡迎轉發給您 Facebook 的朋友共同討論。最後提醒一句,上述 42 點別把它們全都當聖旨,親身體會驗證才是最重要的喔!
祝福大家假期愉快!
c語言printf 在 紀老師程式教學網 Facebook 的最佳解答
[網友來信] 我開始背誦 C 語言 32 個關鍵字了,為何我還學不會 C 語言?
常常有網友用私訊詢問問題,我通常會抹消個資、稍做修改後,登出來分享給可能有同樣疑惑的人。底下是昨天一位網友問我關於「C 語言學習」的問題,希望我提供給這位網友的解答,也能幫助到有相同困惑的朋友。 :-)
紀老師
-------
老師你好!
我最近開始學習C語言,我之前常常看C語言介紹影片,知道 C 語言有 32個關鍵字,9種控制語句,34種運算符號。有人說這些背不起來就不用學C語言了,但我的記憶力不太好,我是否真的只能放棄呢?我非常熱愛軟體類型的事物或資訊,我不想就這樣算了。
我有在網路上找到一本C語言教學書本:(URL 恕略)可是我真的不了解,簡單說有看沒有懂。我開始覺得我到底適不適合學習C語言?我常在想那麼多的中文字我都記的起來,為什麼我卻背不起來C語言的所有關鍵字?目前我在背32個關鍵字中的15個。我洗澡背、吃飯背、上網也在背、看影片也一直背。起床第一時間就重頭背一次,就怕我忘記。
我不知道有什麼好的管道可以吸收學習?也不知道我的方法對不對,我僅僅只靠網路上的資源收集資料。原本我想購買書籍可是不知道該買哪本。就在網路上找到上面網址的那一本,可是我卻看不懂、不了解,我真的不知道該從哪開始了。
[紀老師回答]
您好:
您的學習方法錯了!
「程式語言」不是一種「知識(Knowledge)」,是一種「技能(Skill)」。所謂的知識,是只要「記下來」,就能使用了。例如歷史、地理等課程。所謂的「技能」,是要透過「實戰」學會的,像是游泳、騎腳踏車。
您的作法,有點像是「我已經把一本游泳入門背得滾瓜爛熟了,我洗澡背、吃飯背、上網也在背,為什麼我下水後還是不會游泳?」或者像是「我已經把九陰真經背得滾瓜爛熟了,為什麼我還是學不會絕世武功?」所以,你去背誦 32 個關鍵字,希望透過這種方法學會程式語言,並非一個很正確的作法。
很多人都誤會程式語言是一種「知識」,以為用力背就會了。事實上它是一種「技能」。凡是技能類的東西,除非你天縱英才,否則初學者都得找「教練」來學比較好。第一次學游泳,你會買一本游泳入門,然後看著書自己學嗎?不會吧?你會找個會游泳的人教。但是一旦學會「蛙式」或是「自由式」,您接下來就會自學「仰式」或「蝶式」了。所以(重點!),看書自學,比較適合有程式設計經驗的人,不太適合完全沒有程式設計經驗的人。
當然我沒有說,所有人一定沒辦法靠著自學學會程式設計。但是,如果您已經嘗試自學,效果不好,您是否考慮去補習班找個老師好好教您一次呢?所以,不要因為你背完「游泳入門」,下水嗆水,就篤定自己「不適合學游泳」。那只不過你學習方法不對而已。去補習班學一次很值得的,因為當你有了基礎,接下來其它語言,就有很高的機率看書自學、並且精通了!
此外,雖然程式設計是用英文呈現,但是跟英文程度好壞沒有太大的關係。因為它們用的「字彙」(如:printf(), scanf()...之類的),根本不是日常英文。語法也非英文文法。最有力的證據是,你叫一個以英語為母語、沒學過程式的外國人來看程式碼,保證 100% 看不懂!程式設計只是一種假借 26 個英文字母,拼寫出來的另一國度的語言而已。人人只要花時間、付出努力(約 6 ~ 9 個月,每週花 6~8 小時左右),都一定學得會。
所以,根據您的情況,我對於您「不知道如何開始」的建議是:去補習班找個老師,好好學一次。然後,老師教的東西,一定要回家「傻傻地」遮起答案,再練一次。這個步驟猶如游泳教練教完後,您自行練習的過程。這是把「程式設計」這個技術,固定在你身體裡的重要步驟,請千萬一定要「傻傻地」、「私下另外找時間」照做。不要有「為什麼教練教完,我也跟著教練練過一遍了,為什麼我還不會游泳?」這種不切實際的想法。
如果您真的還是想要找一本入門書的話,我可以推薦這一本,還不錯:
http://www.books.com.tw/products/0010360466
希望這樣的回答能對您有幫助!
c語言printf 在 Untyped 對啊我是工程師 Youtube 的最佳貼文
有沒有人納悶過為什麼凱心琳我每次開場都要講 "Hello World" 呢?
"Hello World"的由來是什麼?為什麼程式語言 C 要叫 C? 為什麼 C++ 要叫做 C++? JavaScript 跟 Java 之間的關係?電腦程式語言有多少種?電腦為什麼要有桌面?滑鼠游標為什麼是斜的?還有好多好多疑問!電腦科學軟體工程的世界中真的有很多奇怪的事,讓我們一起和軟體工程師 Tim (Richard?) & Kid大探究竟吧!
其實想做這一集已經很久了,題目也老早就準備好了~只是願意參與的工程師真的不多呀😂 感謝Tim跟Kid的用心參與!!
📢 📣 📢 本頻道影片內容有輸出成 podcast 📢 📣 📢
雖然這一集用 podcast 聽可能有點混亂,但還是有輸出成音檔唷!
可以在各大podcast平台搜尋「Untyped 對啊我是工程師」
請大家多多支持呀!!🙏🏻💁🏻♀️
這集會聊到...
Overview 💬
🔹 "Hello World"的由來是什麼?
🔹 為什麼程式語言 C 要叫 C?
🔹 為什麼 C++ 要叫做 C++? C#?
🔹 JavaScript 跟 Java 的關係是什麼?
🔹 printf 的 f 是什麼意思?
🔹 電腦程式語言有多少種?
🔹 電腦為什麼要有桌面?
🔹 工程師口中都是什麼蟲 bug? ?
🔹 滑鼠游標為什麼是斜的?
🔹 第一台電腦的名字?
🔹 PHP代表?
【㊫ 電腦科學/軟體工程 學習資源 📖】
全端工程師密技 Full Stack Eng - Career Path (Codecademy)
https://bit.ly/3niTwLN
前端工程師密技 Front End Eng - Career Path (Codecademy)
https://bit.ly/32K1eql
用Scala學習函式程式設計
https://bit.ly/2IF0Thv
Scala 函数式程式設計原理
https://bit.ly/3kBQXTb
平行程式設計
https://bit.ly/3pCeaZf
Android 應用程式開發 專項課程
https://bit.ly/3lGCUwW
普林斯頓大學 電腦科學 演算法 基礎理論
https://bit.ly/3nxomAh
Go 語言學起來
https://bit.ly/35AWhlv
Parallel, Concurrent, and Distributed Programming in Java 專項課程
https://bit.ly/2IGnlH4
Java 軟體工程基礎課程
https://bit.ly/3fa4gJi
全端開發 跨平台手機app 開發 完整課程
https://bit.ly/2UCGWum
#php是個人快樂鬆餅 #HelloWorld是在哈囉 #冷知識大賽
一定要看到影片最後面並且在「YouTube影片下方」按讚留言訂閱分享唷!
每隔週星期四晚上9點更新,請記得開啟YouTube🔔通知!
-
【愛屋及烏】
YouTube 👉 https://www.youtube.com/c/Untyped對啊我是工程師
Podcast 👉 https://open.spotify.com/show/3L5GRMXmq1MRsliQt43oi2?si=3zgvfHlETeuGfp9rIvwTdw
Facebook 臉書粉專 👉 https://www.facebook.com/untyped/
Instagram 👉 https://www.instagram.com/untypedcoding/
合作邀約 👉 untypedcoding@gmail.com
-
Untyped 對啊我是工程師 - There are so many data types in the world of computer science, so are the people who write the code. We aim to UNTYPE the stereotype of engineers and of how coding is only for a certain type of people.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的工程師。
【Disclaimer 聲明】
Some links are affiliated.
上面有些連結是回饋連結,如果你透過這些連結購買商品,我可以得到一些小獎勵,但不會影響到你購買的價格,甚至會是更低的價格!謝謝你的支持💕
c語言printf 在 史九87 SJ87 Youtube 的最讚貼文
三個你不一定知道的小知識
我想長資識有史以來最輕鬆的主題 😜
👨💻 C 語言的由來 (C++ 為什麼叫做 C++, C# 又是什麼)
👩💻 printf 的 f 到底是什麼意思?
👨💻 為什麼寫程式的人都在那邊 hello world
👉資訊相關👈
————————————————————————
● 面試祕笈!絕不藏私!軟體工程師的面試技巧 我想長資識 E03 https://youtu.be/UxmlFsQFqx4
● 2019 年最令人期待的手機? Pixel 4 曝光!來自 Google 的技術結晶 https://youtu.be/fppqZnZAZQM
● Null 不是唸「怒嘔」?工程師常常唸錯的單字 我想長資識 E02 https://youtu.be/1YEcEQw0vGA
● 韌體是什麼? 4分鐘!讓你認識軟體硬體與韌體 我想長資識 E01 https://youtu.be/ZHWsHUEz4qk
————————————————————————
👉追蹤我們👈
————————————————————————
史九87 IG ► https://www.instagram.com/im9vv
史九87 FB ► https://www.facebook.com/shihjo87
商業合作請洽詢 ► shihjo87@gmail.com
信箱箱址中文:
24199
三重忠孝路郵局第 88 號信箱
信箱箱址英文:
P.O.BOX 88 Sanchong Zhongxiao Road
New Taipei City 24199
Taiwan (R.O.C)
————————————————————————
c語言printf 在 C/C++ printf 參數說明 的推薦與評價
本篇列出C/C++ 常用的printf 格式化輸出參數與說明, 字元/字串字元/字串說明%c 字元(char) %s 字元陣列(char *) %S 寬字元陣列(wchar_t *) 範例如下 ... ... <看更多>
c語言printf 在 【C 語言入門】2.3 - 將printf 或scanf 用在不同資料型別- YouTube 的推薦與評價
【 C 語言 入門】2.3 - 將 printf 或scanf 用在不同資料型別. 80,695 views80K views. Aug 8, 2015. 563. Dislike. Share. Save. ... <看更多>