嵌入式LinuxC語(yǔ)言:0.前言-創(chuàng)新互聯(lián)

嵌入式Linux C語(yǔ)言:0 前言
    • 1 環(huán)境配置
    • 2 介紹
      • 2.1 編寫(xiě)代碼
      • 2.2 編譯代碼(complie)
      • 2.3 運(yùn)行代碼
      • 2.4 格式化輸入/輸出
    • 問(wèn)題

成都創(chuàng)新互聯(lián)公司成立于2013年,先為葉城等服務(wù)建站,葉城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為葉城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wè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í)。

1 環(huán)境配置

代碼調(diào)試環(huán)境

  1. 虛擬機(jī):VMware-16.2.1
  2. Linux版本:Unbuntu 18.04.4
  3. 文本編輯器:Source Insight 4.0
  4. C語(yǔ)言編輯器:gcc 7.4.0

上述是本系列文章用來(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::BlocksCode::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/vimVim是從vi發(fā)展出來(lái)的一個(gè)文本編輯器。(Linux最強(qiáng)大的命令行編輯器)

代碼規(guī)范

  1. 代碼縮進(jìn): 向后縮進(jìn)TAB,向前縮進(jìn)shift+TAB。
  2. 花括號(hào):{}成對(duì)打,防止遺漏;左右邊花括號(hào)各占一行且對(duì)齊,注意代碼縮進(jìn)。
2.2 編譯代碼(complie)

編譯
對(duì)編譯有兩種解釋

  1. 利用編譯程序從源語(yǔ)言編寫(xiě)的源程序產(chǎn)生目標(biāo)程序的過(guò)程。
  2. 用編譯程序產(chǎn)生目標(biāo)程序的過(guò)程。

編譯器(compiler): 用來(lái)編譯的軟件。

linux簡(jiǎn)介
gccGCC(GNU Compiler Collection, GNU編譯器套件)是由GNU開(kāi)發(fā)的變成語(yǔ)言編譯器。
arm-linux-gccarm-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

2.4 格式化輸入/輸出

格式化輸出 printf
格式化輸出 : 按照指定的格式來(lái)進(jìn)行輸出
printf用來(lái)格式化輸出
使用命令man printfman -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ù),可分為兩類:

  1. 第一個(gè)參數(shù)
    格式化輸出字符串
    格式化輸出字符串有兩類字符
    a、轉(zhuǎn)義字符: 以%開(kāi)頭的字符
轉(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)

  1. 其他參數(shù) “…”
    要輸出的變量或者對(duì)象列表
    要輸出的變量或者對(duì)象的個(gè)數(shù)必須要與前面字符串中轉(zhuǎn)義字符個(gè)數(shù)一致
#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 scanfman scanf查看scanf相關(guān)內(nèi)容
scanf相關(guān)內(nèi)容

#includeint scanf(const char *format, ...);

scanf函數(shù)可帶多個(gè)參數(shù),可分兩類:

  1. 第一個(gè)參數(shù)
    格式化輸入字符串:
    在格式化輸入字符串中有三類字符:
    a、空白符(space(空格), TAB …),可輸入任意空白符(包含0個(gè)),scanf把(換行符)當(dāng)作輸出結(jié)束。
    b、非轉(zhuǎn)移字符,需要按照原樣輸入
    c、轉(zhuǎn)義字符(以%開(kāi)頭的字符)
  2. 其他參數(shù)“…” : 地址列表
    格式化字符串中一個(gè)轉(zhuǎn)義字符回對(duì)應(yīng)一個(gè)地址,把一個(gè)轉(zhuǎn)義字符的輸入存儲(chǔ)到指定地址中
    &變量(對(duì)象) : 取變量(對(duì)象)地址(指針)
問(wèn)題
  1. 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ò))

  2. Linux 運(yùn)行C語(yǔ)言中的一些小問(wèn)題:

  3. \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ū)別

  4. 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)

成都網(wǎng)站建設(shè)公司