成為C++高手之第一個程序

2021-02-25 單片機精講吳鑑鷹

吳鑑鷹單片機開發板店鋪地址

店鋪:【吳鑑鷹的小鋪】

地址:【https://item.taobao.com/item.htm?_u=ukgdp5a7629&id=524088004171】

工欲善其事,必先利其器。選一個好用又流行的的編程工具很重要。軟體編程工具現在都叫做IDE—–集成開發環境,能幫我們做很多事。有人願意手動寫makefile來自己管理源文件,很好,但是makefile對新手來說跟天書一樣,很容易被打擊得沒興趣了。makefile應該學嗎?應該!但是,其學習時機應該是在完成一個比較複雜的項目之後,此時對項目的組織,源碼管理、依賴關係等有了一定認識,再學makefile就順風順水了。所以我們現在還是老老實實選一個IDE吧。
支持跨平臺的IDE有:QtCreator, Code::Blocks, Dev C++, eclipse CDT,Netbeans等。但是最好用的,以我多年的經驗來說,首推QtCreator,我也不想多叨叨,你自己都對比一下就知道了,反正都是免費的。

QtCreator在三大平臺上都是一樣的界面。其下載地址是:
linux:
http://download.qt.io/official_releases/qt/5.6/5.6.0/qt-opensource-linux-x64-5.6.0.run
windows:

http://download.qt.io/official_releases/qt/5.6/5.6.0/qt-opensource-windows-x86-mingw492-5.6.0.exe
MacOSX:
http://download.qt.io/official_releases/qt/5.6/5.6.0/qt-opensource-mac-x64-clang-5.6.0.dmg
如何安裝和利用它創建工程,我的視頻教程「C語言跨平臺入門」(地址:http://edu.csdn.net/course/detail/2057)中有詳細的演示。但QtCreator在中文Windows下有個問題,控制臺中文亂碼。你創建的控制臺程序輸出中文時是亂碼。由於QtCreator對源碼文件的默認編碼是UTF8,而控制臺中的字符編碼是按GB2312解釋的,所以就亂了。要消除也很簡單,把源碼的編碼改成GB2312就行了。或者不要輸出中文字符。如下圖:


改成GB2312或GB18030都可。GB是國標的縮寫。


我視頻中的程序在vs2013和vs2015中也完全可以編譯運行。因為微軟從vs2010開始就完全遵守C和C++標準了。你只需要在VS中建立C++工程,然後將h和c文件添加到vs工程中即可。

萬仞高臺,起於壘土。要成為C++高手,還得從C開始。要寫程序,先建C工程,下圖是已建好的QTCreator工程(不熟悉QtCreator的使用,請參考視頻教程:http://edu.csdn.net/course/detail/2057):


可以看到簡單的一個工程也已經有幾個文件了。pro文件是工程文件,用於保存工程的信息,不要動它。Sources文件夾不是一個真正的文件夾,只是一個分組。main.c是源碼文件。main.c文件不是空的,而是一個HelloWorld程序,這是IDE為我們做的,你可以把文件刪掉自己重新加,效果也是一樣。這個程序就做了一件事:輸出一段文本:Hello world。但從這個程序中可以看到一個程序的必備要素:

main.c中的內容:

//包含這個頭文件是為了使用函數printf ,否則不用包含這個頭文件
#include <stdio.h>
/*
 入口函數
 int是返回值類型
 小括號裡放參數,void表示沒有參數,可以把void省略
 */
int main(void)
{
    //向控制臺輸出一條文本
    printf("Hello World!\n");
    //反回0表示程序成功執行
    return 0;
}

核心語法:

注釋是給人看的,編譯器不把它們當代碼處理。單行注釋://,多行注釋:/**/ 。

一行語句結束,要有分號。

include句叫包含頭文件。包含頭文件是為了使用那個頭文件中聲明的函數或變量。

main是函數,大括號內就是函數的代碼。代碼就是計算機能執行的指令。

輸出文本是printf函數幹的,printf就是stdio.h文件中的函數,所以必須在使用printf之前包含頭文件。

要使用一個函數的功能必須調用這個函數,比如printf句。

函數可以被調用任意次,比如你可以調用10次printf。

調用函數的寫法是有一定規則的,首先寫上函數名,因為沒有函數名就不知道要執行哪個函數了;函數名之後緊跟小括號。小括號內叫參數,這裡傳什麼參數,printf就輸出什麼。

喜歡本文的親們歡迎點讚

| 單 | 片| 機 | 精 | 講 | 吳| 鑑 | 鷹 |

微信第一單片機分享 最受歡迎圖文公號

微信號:wujianying_danpianji

《2016.5.8》● 技術源於積累,成功來自執著——單片機精講吳鑑鷹

相關焦點

  • 如何快速成為一個高手
    這是本公眾號的第三篇推文,讓我們學習一下如何快速成為一個領域的高手。在這個頭部效應逐漸擴大的時代,想要成功就必須把自己打造成某一領域的「知識頭部生產者」,通俗來說就是該領域的「高手」。但「一萬小時理論」的陰霾還在不斷籠罩著我們,要是進入那些與原來專業類似的(例如數學轉到計算機、化學轉到化工)還好,基礎知識都是類似的。
  • C++基礎總結(一):從「hello world」入門C++!
    C++ 是 C 的一個超集,事實上,任何合法的 C 程序都是合法的 C++ 程序。注意:使用靜態類型的程式語言是在編譯時執行類型檢查,而不是在運行時執行類型檢查。面向對象程序設計c++最大的亮點就是面向對象程序設計理念的運用。
  • python+C、C++混合編程的應用
    我看到的一個很好的Python與c/c++混合編程的應用是NS3(Network Simulator3)一款網絡模擬軟體,它的內部計算引擎需要用高性能,但在用戶建模部分需要靈活易用。NS3的選擇是使用C/C++來模擬核心部件和協議,用python來建模和擴展。這篇文章介紹python和c/c++三種混合編程的方法,並對性能加以分析。
  • C++之標準庫的學習總結
    a.out1TXP0.300000從上面我們可以看到,不直接使用printf函數去列印這個值,這個以前在書上,都是直接講解把數值說送到輸出流中去,但是你一開始學習cout函數(或者說你還沒有接觸到對象的時候,根本不明白這什麼意思);如果進行了左移的重載之後,那麼程序將產生神奇的變化
  • C/C++程序CPU問題分析
    代碼片段2中的這段代碼中,第1、2行中的memset會導致程序的CPU使用過多,但即使是將這兩行的代碼注釋掉,程序的性能依然沒有明顯的改觀。問題的根源在於代碼片段2中最後一行代碼調用的odb_renew函數有釋放內存和大量的memset操作,導致消耗的CPU很多。如果在程序中調用了大量的odb_renew函數,其性能一定不太好。
  • C++ Primer Plus中文版(第4、5、6版)
    本書是根據2003年的ISO/ANSI C++標準編寫的,通過大量短小精悍的程序詳細而全面地闡述了C++的基本概念和技術。C++ Primer Plus全書分17章和10個附錄,分別介紹了C++程序的運行方式、基本數據類型、複合數據類型、循環和關係表達式、分支語句和邏輯操作符、函數重載和函數模板、內存模型和名稱空間、類的設計和使用、多態、虛函數、動態內存分配、繼承、代碼重用、友元、異常處理技術、string類和標準模板庫、輸入/輸出等內容。
  • 如何成為一個風趣幽默的高手?
    特點二:有結構,進教室後,程序清晰,分區落座(家長帶孩子按小組劃分)、觀看視頻(一個完整的手工作品的製作流程)、明確教具、材料分類、歸檔規範等等,有序進行。 特點三:會表達,程式化表達。
  • C++機器學習庫介紹
    假設我們要實現線性回歸,那麼額外的頭文件包括:用Shark編譯程序包括相關的頭文件。在終端中,鍵入以下命令(確保正確設置了目錄):g++ -o lr linear_regression.cpp -std=c++11 -lboost_serialization -lshark -lcblas一旦編譯,它就會創建一個lr對象。現在只需運行程序。
  • 九大程式語言優缺點第四期:c++
    C++:c++誕生於1983年,緊隨c語言的步伐,c++是C語言的超集,大家所知道的C語言是面向過程的,java是面向對象的,那麼C語言為了面向對象,所以誕生出現在大家所熟知的c++,被廣泛視為大規模應用構建軟體。
  • 基於TI C6000系列DSP的C/C++程序優化技術
    摘 要:在現代DSP的開發中,越來越多地採用C/c++作為開發語言,而C/C++程序的優化成為DSP』軟體開發的重要環節。為DSP的C/C++軟體開發提供了全面的程序優化技術和方法,對實際系統的開發具有重要的現實意義。
  • 乾貨分享:用一百行代碼做一個C/C++表白小程序,程式設計師的浪漫!
    做一個浪漫的程序給她,放上你們照片,找一段有符合情景的音樂,既有心意,又有浪漫。所以說,程序猿的浪漫你根本想像不到啊。1.開發工具: vs vc(任選一個)2.準備材料 :a.一首音樂 (注意:音樂要求重命名為 「x」 )b.20張圖片(注意: 圖片要求重命名為 「1」 "2" 」3「 ......"19" "20")
  • C++隨機排序容器中的元素
    作者:apocelipes連結:https://www.cnblogs.com/apocelipes/p/10351335.html在各種程序語言中都提供了將容器元素隨機排序的shuffle方法,c++也不例外。
  • scratch/python/c++,小孩學編程學哪個好?
    比如讓角色走路,在scratch中有向『前』走,沒有向『後』走,如果想讓角色向後走,可以讓它走一個負數。但是在編程貓中,有單獨的一個向『後』走的積木。編程貓積木更加細緻,更適合低齡兒童,卻有人覺得破壞了編程的邏輯思維:要達到某個目標,編程實現才是學習編程;你直接帶它到目標,那還是編程嗎?
  • 想成為銷售高手,必須做好的第一件小事
    微商銷售72絕技連載3:想成為銷售高手,必須做好的第一件小事一個銷售新人,想成長為銷售高手,一定要做好每日總結,每天做一份銷售報表(見下表)不管是做銷售,還是做微商,還是創業,那些成功的人,我發現他們都有一個共同的做法,就是他們都會做每日的總結比如我,剛開始做銷售的時候,帶我的師傅就給我列印了30張「銷售日報表」讓我每天晚上填寫一張還記得第一次寫報表,特別困難,我從晚上8點,寫到夜裡12點多,才勉強寫完為什麼說是勉強寫完呢?
  • C++機器學習庫介紹 | 文末送書
    在終端中,鍵入以下命令(確保正確設置了目錄):g++ -o lr linear_regression.cpp -std=c++11 -lboost_serialization -lshark -lcblas一旦編譯,它就會創建一個lr對象。現在只需運行程序。
  • C 2 C++進階篇(1)
    之前一直是對於面向過程的編程,python有過那種對象風格的編程,但是對於oop的實際開發還停留在表面,沒有獨立的開發c++經驗,也有好幾年沒有碰過c了。由於接手Qt的相關項目,所以對c to c++的進階希望能進行個自我總結。
  • c++之重載函數學習總結
    2、函數重載至少要滿足下面的一個條件:比如下面兩個函數可以構造重載函數嗎?5: note: int func(int, int, int) int func(int a, int b, int c = 0)     ^test5.cpp:8:5: note: int func(int, int) int func(int a, int b)從上面報錯的結果裡面有一個單詞
  • c++簡介及順序結構
    c++介紹C++ 是一種靜態類型的、編譯式的、通用的、大小寫敏感的、不規則的程式語言,支持過程化編程、面向對象編程和泛型編程。C++ 被認為是一種中級語言,它綜合了高級語言和低級語言的特點。C++ 是 C 的一個超集,事實上,任何合法的 C 程序都是合法的 C++ 程序。注意:使用靜態類型的程式語言是在編譯時執行類型檢查,而不是在運行時執行類型檢查。2. 開發環境2.1.
  • C/C++優勢究竟在哪裡?是什麼讓他們經久不衰?看看這個你就懂了
    c語言誕生於1972年,是一個通用型命令式計算機程式語言,其支持結構化編程,詞彙變量範圍與遞歸,同時也是一種能夠預防各類未預期操作的靜態類型系統,最初的目標在於構建編寫系統軟體。相較於C語言,c++誕生於1983年,緊隨c語言的步伐,c++是C語言的超集,大家所知道的C語言是面向過程的,java是面向對象的,那麼C語言為了面向對象,所以誕生出現在大家所熟知的c++,被廣泛視為大規模應用構建軟體。
  • VISUAL C++全能速查寶典 高清pdf
    本書分為兩部分,共17章,前7章是c函數部分,每一章是一個分類,共囊括了143個函數;後10章是mfc類,同樣是按章分類,共包含77個類、1102個方法,內容涉及visual c++中的各種技術。每一個知識點都配有具體的示例,便於讀者理解。需要的朋友關注後私信我,大量優質電子資料分享!