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