- C/C++實踐進階之道:寫給程序員看的編程書
- 陳黎娟
- 986字
- 2020-06-29 11:37:43
5-8 對比Pascal語言和C語言中函數使用的差異
Pascal語言往往作為一門程序設計的教學語言使用,現在在計算機奧賽中等教學領域也有一定的使用,讀者將來也可能會用Delphi這種基于Pascal變化而來的快速開發工具,所以這里對比一下。
記得當年學習程序設計語言的時候。我們班也和現在的網絡上一樣,有喜歡Pascal語言的,有喜歡C語言的。兩邊爭得不亦樂乎。其實Turbo C和Turbo Pascal在Borland的調教之下,功能相差無幾。
其實我是先用Turbo Pascal再轉入Borland C++的。中途只是考試用了一下Turbo C。
要說兩種語言,我也是先親近Pascal語言,后來愛上C語言的。
開始我喜歡Pascal語言的嚴謹,每一個語法都有嚴格的語法圖示。Turbo Pascal編譯速度很快。后來更喜歡C語言一些,源于它們對函數處理的區別。
C語言是不能在函數中定義一個函數的。雖然也可以嵌套。
但Pascal語言可以,可以在定義部分,定義一個這個函數使用的函數。
我仔細對比了之后,認為C語言這種做法使得C語言更簡潔、更精巧。
原因如下:
(1)在函數體外定義一個函數,需要的時候,調用即可,顯得更簡潔,好理解。
(2)Pascal語言的這個機制,給Pascal語言的學習帶來困擾,理解這樣的嵌套函數,也很費力。
實際上,我更喜歡Turbo Pascal提供的unit這個功能。
一個單元就是一個模塊。在任何一個單元中,分為接口和實現兩個部分。我們要用這個模塊,只需要理解接口中的調用函數用法就可以了。
和C語言/C++的頭文件的實現文件機制非常像。
但是,unit單元文件編譯后,對接口不可見,不像C語言,讀一下頭文件,基本上能掌握十之八九。
不可見,就需要另外提供開發文檔給使用者,好像也不是很好。但是unit單元提供的這種接口/實現相分離的機制,一直給我留下了非常深刻的印象。
所以,Pascal語言更適合作為教學語言,給剛剛接觸結構化編程的學生建立嚴格代碼規范的訓練。可以避開C和C++的一些簡單陷阱,先專注于理解程序語法規則。而C/C++適合作為以為開發技能的訓練。當然,本書提供了一種思路,你可以先學習最核心的C語法,然后再學習C語言的一些技巧,跨過這些缺陷。現在直接用C語言作為教學的情況也多了起來,其實這是一件好事情,可以讓學生直接接觸工業級實際開發代碼,對就業和直接上手都很有幫助,就是學習的時候,要注意C語言的學習臺階。
所以,讀者們請多注意語言特性的區別,這個特性能有什么好的用處?甚至思考一下有些程序設計語言為什么要有這個特性?以及這個語言帶給你開發程序上的實際意義。如果你都能對這些加以思考,并不斷尋找答案,相信你會更上一層樓的。
- Learning Neo4j
- C++ Primer習題集(第5版)
- Extending Jenkins
- Learning C# by Developing Games with Unity 2020
- Implementing Cisco Networking Solutions
- Reactive Programming With Java 9
- Mastering Predictive Analytics with Python
- SharePoint Development with the SharePoint Framework
- Web Development with MongoDB and Node(Third Edition)
- 零基礎學HTML+CSS
- Clojure High Performance Programming(Second Edition)
- Python程序設計教程
- HTML5 WebSocket權威指南
- C語言進階:重點、難點與疑點解析
- Advanced C++