1 環(huán)境配置本篇開始更新嵌入式C語言的全部內(nèi)容,一共11節(jié),系統(tǒng)學(xué)習(xí)C語言的相關(guān)內(nèi)容和一些簡單的內(nèi)容拓展,包括一些題目及一些相關(guān)算法知識。
代碼調(diào)試環(huán)境
上述是本系列文章用來調(diào)試C語言代碼的環(huán)境,有些東西可能在不同版本的Linux或windows有不同的答案,相關(guān)學(xué)習(xí)的內(nèi)容均是在Linux 64位下調(diào)試運行。
2 介紹程序編寫的過程
2.1 編寫代碼編寫軟件(列舉一些win和Linux下編寫C語言的軟件)
windows | 簡介 |
---|---|
VC++ | VC++全稱Visual C++,是由微軟提供的C++開發(fā)工具,VC++不僅是一個編譯器,還是一個集成開發(fā)環(huán)境,包括編譯器、調(diào)試器和編譯器等,一般包含在Visual Studio中。Visual Studio包含了VB、VC++、C#等編譯環(huán)境。 |
Code::Blocks | Code::Blocks是一個開發(fā)源碼的全功能跨平臺C/C++集成開發(fā)環(huán)境。Code::Blocks是開放源碼軟件,由純粹的C++語言,基于圖形界面庫wxWidgets開發(fā)。 |
NotePad++ | NotePad++是Windows操作系統(tǒng)下的一套文本編輯器,有完整的中文化接口及支持多國語言編寫的功能,是一個免費的開源文本和源代碼編輯器。 |
文本編輯器 | 常用的文本編輯器有: vscode、NotePad++和VIM等。 |
記事本 | windows自帶 |
… | … |
Linux | 簡介 |
---|---|
vi/vim | Vim是從vi發(fā)展出來的一個文本編輯器。(Linux最強大的命令行編輯器) |
代碼規(guī)范
{}
成對打,防止遺漏;左右邊花括號各占一行且對齊,注意代碼縮進。編譯
對編譯有兩種解釋
編譯器(compiler): 用來編譯的軟件。
linux | 簡介 |
---|---|
gcc | GCC(GNU Compiler Collection, GNU編譯器套件)是由GNU開發(fā)的變成語言編譯器。 |
arm-linux-gcc | arm-linux-gcc是基于ARM目標(biāo)機的交叉編譯軟件 |
編譯命令gcc xxx.c -o xxx
: 將xxx.c源文件編譯生成xxx可執(zhí)行文件。
后面的-o xxx
是編譯后生成的可執(zhí)行文件的名字,可省略。
gcc main.c //默認(rèn)生成a.out文件
2.3 運行代碼./xxx
: xxx使用編譯命令后生成的xxx可執(zhí)行文件
使用gcc main.c
編譯后的運行命令為./a.out
格式化輸出 printf
格式化輸出 : 按照指定的格式來進行輸出
printf用來格式化輸出
使用命令man printf
或man -f printf
先查找后使用man 3 printf
查看printf函數(shù)的相關(guān)內(nèi)容。
man命令: 可以通過一些參數(shù),快速查詢Linux幫助手冊,并格式化顯示。
printf相關(guān)內(nèi)容
#includeint printf(const char * format, ... );
printf函數(shù)可帶多個參數(shù),可分為兩類:
轉(zhuǎn)義字符 | 解釋 |
---|---|
%d | 按照十進制的有符號數(shù)輸出(int/signed int) |
%u | 按照十進制的無符號數(shù)輸出(unsigned int) |
%c | 輸出字符| |
%s | 輸出字符串 (輸出一串字符,遇到'/0' 停止 |
%f | 以浮點類型輸出 |
%x | 以無符號十六進制整數(shù)輸出(字母小寫) |
%X | 以無符號十六進制整數(shù)輸出(字母大寫) |
%o | 以無符號八進制整數(shù)輸出 |
%e | 浮點數(shù),按照指數(shù)e的形式輸出 |
%E | 浮點數(shù),按照指數(shù)E的形式輸出 |
%g | 以%f和%e較短的形式輸出 |
%G | 以%F和%E較短的形式輸出 |
%l | 以長整形形式輸出,加載的d、o、u、x、X前| |
… | … |
signed : 有符號(可省略)
unsigned : 無符號
#includeint main()
{int a = 1024;
char c = 'a';
printf("a==%d, c==%c\n", a, c);
return 0;
}
輸出結(jié)果a==1025, c==a
格式化輸入 scanf
格式化輸入 : 按照指定格式進行輸入
使用命令man -f scanf
和man scanf
查看scanf相關(guān)內(nèi)容
scanf相關(guān)內(nèi)容
#includeint scanf(const char *format, ...);
scanf函數(shù)可帶多個參數(shù),可分兩類:
(換行符)當(dāng)作輸出結(jié)束。scanf獲取輸入時,如何表示結(jié)束?/scanf從stdin的讀緩沖區(qū)取獲取輸入什么時候才會結(jié)束?
1.輸入完成
如:
scanf(“abcd%d %c1234”, %a, &c);
輸入: abcd123a1234 (該輸入的內(nèi)容全部輸入,scnaf遇到’\n’就會結(jié)束)
2.匹配失敗 (matching failing)
如:
scanf(“abcd%d %c1234”, %a, &c);
輸入: ABCD (scnaf停止匹配 出錯)
Linux 運行C語言中的一些小問題:
\r
、\r
、的區(qū)別:
答:\r
: 回車: 換行
Unix系統(tǒng)中,每行結(jié)尾只有換行即
Linux系統(tǒng)中,回車即\r
是將光標(biāo)移動到行首,換行即是將光標(biāo)移到到下一行
Windows系統(tǒng)中,每行結(jié)尾就是回車換行即\r
Mac系統(tǒng)中,每行結(jié)尾是回車即\r
Unix/Mac系統(tǒng)下的文件在Windows里打開的話,所有文字會變成一行;
Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會多出一個^M
符號。
Linux中遇到換行符(“\n”)會進行回車+換行的操作,回車符反而只會作為控制字符^M
顯示,不發(fā)生回車的操作。而windows中要回車符+換行符\r
才會回車+換行,缺少一個控制符或者順序不對都不能正確的另起一行。
回車換行(\n\r)和換行(\r)的區(qū)別
printf(‘xxx’)出錯
答: 因為()中是‘ ’導(dǎo)致,應(yīng)該為" "
C語言中' '
單引號字符常量時使用,表示單個字符,當(dāng)在單引號出現(xiàn)兩個及以上字符或沒有字符時,編譯就會出錯" "
雙引號在表示字符串常量時使用,可以表示0到多個字符組成的字符串
printf函數(shù)的參數(shù)類型為const char *
常量指針,表示字符字符串。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享文章:嵌入式LinuxC語言:0.前言-創(chuàng)新互聯(lián)
分享URL:http://jinyejixie.com/article32/hehpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站改版、靜態(tài)網(wǎng)站、面包屑導(dǎo)航、Google、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容