A. 有哪本書是介紹C語言規范的,我在淘寶沒看見,可以推薦嗎
. Brian W.Kernighan, Dennis M.Ritchie,《C程序設計語言》,機械工業出版社
這是迄今為止在所有程序設計語言書籍中最廣受尊敬的一部經典,是任何一名C程序員的必讀之作。因為出自C語言的設計者Dennis M.Ritchie和著名的計算機科學家Brian W.Kernighan之手,它被昵稱為「K&R C」。是它首先引入了「Hello World!」程序,這個程序幾乎成了後來任何一本入門性程序設計語言書籍中的第一個例子。
如同C語言本身簡潔緊湊而極具威力一樣,這本書輕薄短小而極富張力。通過簡潔的描述和典型的示例,它全面、系統、准確地講述了C語言的各個特性以及C程序設計的基本方法,內容涵蓋基本概念、類型和表達式、控制流、函數與程序結構、指針與數組、結構、輸入與輸出、UNIX系統介面以及標准庫等內容。
B. c,c++的編程規范如此晦澀,怎麼還有那麼多人遵從
C語言發展如此迅速,而且成為最受歡迎的語言之一,主要因為它具有強大的功能。許多著名的系統軟體,如DBASE Ⅳ都是由C 語言編寫的。用C 語言加上一些匯編語言子程序,就更能顯示C 語言的優勢了,像PC- DOS 、WORDSTAR等就是用這種方法編寫的。
我是學C的,感覺C很好啊,我不知道Java,C語法不是很嚴,可以自由編寫,創新空間很大,而且效率高。我覺得,只要能精通任何一種語言,都可以用不同的方法達到相同的效果的,這就是創新,各取所長嘛。
C. 《C語言核心技術原書第2版》pdf下載在線閱讀全文,求百度網盤雲資源
《C語言核心技術原書第2版》網路網盤pdf最新全集下載:
鏈接: https://pan..com/s/1eQNGOAiHe0yNOaqQQY8PUQ
D. TMS320F2812原理及其C語言程序開發的二、內容簡介
《TMS320F2812原理及其C語言程序開發》共分12章。第1章為處理器的功能以及開發環境CCS的介紹,用簡單易懂的實例引領讀者入門。第2章為結合工程開發的C語言基礎介紹,重點是培養讀者C語言開發的基本能力。第3章為TMS320F2812外設的C語言程序開發,重點介紹外設的C語言構成,使讀者對TMS320F2812的外設編程有一個清楚的認識。第4~10章為TMS320F2812的外設介紹,重點介紹外設工作原理、寄存器位信息及功能,並且根據不同的外設提供詳細的C語言程序開發,可以使讀者對外設充分理解。第12章為以TMS320F2812為處理器的電氣平台開發介紹,重點介紹以處理器為核心的各模塊硬體設計、軟體開發,更好地提升讀者的開發能力。附錄中還介紹μC/OS-Ⅱ操作系統在TMS320F2812上移植及實時多任務管理。
《TMS320F2812原理及其C語言程序開發》適合學習DSP TMS320F2812的初級、中級用戶及有一定基礎的DSP設計開發人員,是DSP方面軟體和硬體工程師必備的工具書,也可以作為TMS320F2812 DSP愛好者的自學教材。此外,《TMS320F2812原理及其C語言程序開發》還可以作為高等院校相關專業的參考教材。
-------------------------------------------------------------------------------- 以F2812為核心的電氣平台的開發與設計
豐富的C語言程序開發實例
C語言的編程基礎和編程規范
詳細介紹F2812的外設原理和編程技巧
F2812的Boot ROM相關內容及多種啟動方式介紹
ADC外部校正原理
嵌入式項目流程管理知識介紹
μC/OS-Ⅱ系統在F2812上的移植,以及實時多任務管理 第1章 晶元功能概述、軟體介紹、項目流程管理研究
1.1 TMS320F2812性能概述
1.2 TMS320F2812結構概述
1.2.1 引腳分布
1.2.2 TMS320F2812引腳信號捕述
1.3 TMS320F2812功能概覽
1.3.1 存儲空間示意圖
1.3.2 簡要描述
1.4 DSP集成環境CCS介紹
1.4.1 CCS安裝
1.4.2 CCS配置軟體設置
1.4.3 CCS軟體慨述
1.4.4 File(文件)菜單介紹
1.4.5 Edit(編輯)菜單介紹
1.4.6 View(視圖)菜單介紹
1.4.7 Project(工程)菜單介紹
1.4.8 Debug(調試)菜單介紹
1.5 CCS工程管理
1.5.1 創建新的工程文件
1.5.2 編譯並運行程序
1.6 一個簡單的例子程序介紹
1.6.1 基本的程序代碼生成
1.6.2 具體的程序開發介紹
1.7 嵌入式項目開發流程管理
1.7.1 概述
1.7.2 項目啟動
1.7,3 項目計劃
1.7.4 項目研發
1.7.5 項目結束
第2章 C語言程序設計基礎
2.1 C語言數據結構及語法
2.1.1 C語言數據結構
2.1.2 C語言運算符與表達式
2.2 程序控制結構
2.2.1 if語句
2.2.2 switch語句
2.2.3 while語句
2.2.4 for語句
2.2.5 程序控制中的特殊運算符
2.3 數組
2.4 指引
2.5 函數
2.6 C語言編程規范
2.6.1 環境
2.6.2 語言規范
2.6.3 字元類
2.6.4 變情類型
2.6.5 函數聲明和定義
2.6.6 變數初始化
2.6.7 演算法類型轉換
2.6.8 編程風格
第3章 TMS320F2812外設的C語言程序設計
3.1 導言
3.2 傳統的#define方法
3.3 位定義和寄存器結構體定義方式
3.3.1 定義寄存器結構體
3.3.2 使用DATA_SECTION將寄存器結構體映射到地址空間
3.3.3 添加位定義
3.3.4 共同體定義
3.4 位操作和寄存器結構體定義方式的優點
3.5 對位或寄存器整體進行操作
3.6 一個特殊的例子(eCAN控制寄存器)
第4章 TMS320F2812系統控制及中斷
4.1 存儲空間
4.1.1 Flash存儲器
4.1.2 OTP存儲器
4.1.3 Flash和()TP寄存器
4.2 時鍾及系統控制
4.2.1 時鍾及系統控制概述
4.2.2 外設時鍾控制寄存器(PCLKCR)
4.2.3 系統控制和狀態寄存器(SCSR)
4.2.4 高/低速外設時鍾預定標寄存器(HISPCP/L()SPCP)
4.3 振盪器及鎖相環模塊
4.4 低功耗模式
4.5 F2812外設結構
4.5.1 外設結構寄存器
4.5.2 受EALLOW保護的寄存器
4.6 F2812外設中斷擴展模塊
4.6.1 PIE控制器概述
4.6.2 中斷操作步驟
4.6.3 向量表的映射
4.6.4 中斷源
4.6.5 復用中斷操作過程
4.6.6 使能/禁止復用外設中斷的程序步驟
4.6.7 外設向CPU發出的復州中斷請求流程
4.6.8 PIE向量表
4.6.9 P1E配置寄存器
4.6.10 中斷程序設計
4.7 看門狗模塊
4.7.1 看門狗模塊介紹
4.7.2 看門狗計數寄存器(WDCNTR)
4.7.3 看門狗復位寄存器(WDKEY)
4.7.4 看門狗控制寄存器(WDCR)
4.7.5 看門狗模塊程序設計
4.8 32位CPU定時器
4.8.1 TIMERxTIM寄存器
4.8.2 TIMERxPRD寄存器
4.8.3 TIMERxTCR寄存器
4.8.4 TIMERxTPR寄存器
4.8.5 定時器程序設計
4.9 通用輸入輸出口(GPI())
4.9.1 GPI()介紹
4.9.2 輸入限制
4.9.3 GPxMUX寄存器(功能選擇寄存器)
4.9.4 GPxDIR寄存器(方向控制寄存器)
4.9.5 GPxDAT衡存器(數據寄存器)
4.9.6 GPxSET寄存器(置位寄存器)
4.9.7 GPxCLEAR寄存器(清除寄存器)
4.9.8 GPxTOGGLE寄存器(取反觸發寄器)
4.9.9 寄存器位I/O引腳的映射
4.9.10 GPIO程序設計
第5章 TMS320F2812外部介面(XINTF)
5.1 外部接U功能概述
5.2 X1NTF配褂概述
5.2.1 政變XINTF配置和時序寄器的程序
5.2.2 XINTF時鍾
5.2.3 寫緩沖器
5.2.4 XINTF每個區域訪問的引導、激活、跟蹤的時序
5.2.5 XREADY信號采樣
5.2.6 區域切換
5.2.7 XMP/MC信號對XINTF的影響
5.3 引導、激活、跟蹤等待狀態的配置
5.4 XINTF寄存器
5.4.1 XINTF時序寄存器(XTIMINGx)
5.4.2 XINTF配性寄仔器(XINCNFx)
5.4.3 XBANK寄存器
5.5 信號描述
5.6 XINTF操作時序圖
5.7 XINTF應用開發及C語言程序設計
5.7.1 XINTF應用開發概述
5.7.2 XINTF模塊的C語言程序設計
第6章 TMS320F2812串列通信介面(SCI)
第7章 TMS3211F2812的串列外圍設備介面(SPI)
第8章 TMS320F2812增強型區域控制網路(eCAN)模塊
第9章 TMS320F2812模/數轉換(ADC)模 塊
第10章 TMS320F2812事件管理器(EV)模塊
第11章 Boot ROM介紹和F2812程序模擬與下載
第12章 基於TMS320F2812的電氣平台開發設計
附錄 μC/OS-Ⅱ操作系統在F2812上移植及實時多任務管理
參考文獻
……
E. c語言編程代碼
兩種方法我寫在一起,可以獨立拆開。
#include <stdio.h>
void finda1(char a[3][10]);
void finda2(char a[3][10]);
void show(char (*p)[10]);
int main()
{
char a[3][10]={{"gehajl"},{"788a987a7"},{"ccabbbabbb"}};
printf("原數組內容: ");
show(a);
printf(" 1、用數組指針的方法(函數finda1): ");
finda1(a);
printf("執行後: ");
show(a);
printf(" --------------------- ");
char b[3][10]={{"gehajl"},{"788a987a7"},{"ccabbbabbb"}};
printf("原數組內容: ");
show(a);
printf(" 2、用指針數組的方法(函數finda2): ");
finda2(b);
printf("執行後: ");
show(b);
return 0;
}
void finda1(char a[3][10])
{
int i,j;
char (*p)[10]=a;
for(i=0;i<3;i++)
for(j=0;j<10;j++)
if(p[i][j]=='a')
printf("發現:第%d行第%d個元素是『a』,已替換 ",i+1,j+1),p[i][j]='1';
}
void finda2(char a[3][10])
{
int i,j;
char *p[3]={&a[0][0],&a[1][0],&a[2][0]};
for(i=0;i<3;i++)
for(j=0;j<10;j++)
if(p[i][j]=='a')
printf("發現:第%d行第%d個元素是『a』,已替換 ",i+1,j+1),p[i][j]='1';
}
void show(char (*p)[10])
{
int i,j;
for(i=0;i<3;i++,printf(" "))
for(j=0;j<10;j++)
printf("%c ",p[i][j]);
}
F. 如何學習C++編程
學習C++的話,看你目前的水平,我說一下從完全不懂到最後高手的專家推薦路線吧:
1. 《C++ Primer》Lippman寫的,經典中的經典,C++入門的寶典,讀完這本書,基本語法過關,部分技巧掌握。
2.《The C++ programming language》C++的創始人Bjarne Stroustrup寫的,這本書的權威性毋庸置疑,而且這裡面講到了一些比較底層的東西,如果你看過了《C++ Primer》的話,這本書可以跳著看,懂的就跳過。
3.《Effective C++》 Scott Meyers頂級大師用活潑幽默的語言寫的書,這本書中講到了許多應該注意的問題,這是十分值得購買的書。(Lippman曾把程序員分為看過effective c++的和沒看過的兩類。由此可見此書的重要性)
4.《More Effective C++》上書的姊妹篇,這本書里講到了許多關鍵性的技術,對提高程序的效率是非常有幫助的。
5.《Advanced C++》這是一本神奇的書,裡面講到了許多連C++設計者都沒想到的妙法,解決了許多看似不可能解決的問題。Scott Meyers曾隆重推薦過的書。
6.《Inside the C++ Objects Model》又是Lippman的大作!這本書講到了他在開發第一個C++編譯器時的許多想法,徹底解析了C++底層機制是如何實現對象模型的,看過這本書,你對C++的了解會有質的飛躍!從這刻起,你有權力說你是一個C++程序員了!
光學C++語言基本上看完上述的書就是高手了,其他經驗要在實踐中累積,你在看這些書的同時就應該多做一些小程序,小項目,提高水平的速度是飛快的.這是我個人的經驗。另外,你學了C++還要開發程序,開發軟體,無疑要使用MFC之類的東西
《API Programming》和《MFC Windows 程序設計》兩書值得一看。這兩本書能迅速提高你的實踐水平。
最後,不要被這么多書嚇倒,用起心來,很快能搞定!祝你早日成功!!
G. C語言編程
C語言代碼規范(編程規范)
什麼叫規范?在C語言中不遵守編譯器的規定,編譯器在編譯時就會報錯,這個規定叫作規則。但是有一種規定,它是一種人為的、約定成俗的,即使不按照那種規定也不會出錯,這種規定就叫作規范。
雖然我們不按照規范也不會出錯,但是那樣代碼寫得就會很亂。大家剛開始學習C語言的時候,第一步不是說要把程序寫正確,而是要寫規范。因為如果你養成一種非常不好的寫代碼的習慣,代碼就會寫得亂七八糟,等到將來工作面試的時候,這樣的習慣可能會讓你失去機會。
代碼如何寫才能規范
那麼代碼如何寫才能寫得很規范呢?代碼的規范化不是說看完本節內容後就能實現的。它裡面細節很多,而且需要不停地寫代碼練習,不停地領悟,慢慢地才能掌握的一種編程習慣。所以大家不要想著一下子就能把代碼規范化的所有知識全部掌握,也不要想著一下子就能把代碼寫規范,這是不太可能的。
有很多知識,比如為什麼代碼要這樣寫,為什麼不能那樣寫,作為一個初學者你是很難弄明白的。有很多規范是為了在程序代碼量很大的時候,便於自己閱讀,也便於別人閱讀。
所以剛開始的時候有很多規范你不知道為什麼要那樣規定,你就單純地模仿就行了。等將來敲代碼敲得時間長了,你就會感覺到那樣寫是很有好處的。
代碼規范化的好處
代碼規范化的第一個好處就是看著很整齊、很舒服。假如你現在用不規范的方式寫了一萬行代碼,現在能看得懂,但等過了三個月你再回頭看時就很吃力了,更不要說給別人看了。所以代碼要寫規范,比如加註釋就是代碼規范化的一個思想。
在一般情況下,根據軟體工程的思想,我們的注釋要佔整個文檔的20%以上。所以注釋要寫得很詳細,而且格式要寫得很規范。
第二個好處是,把代碼寫規范則程序不容易出錯。如果按照不規范的格式輸入代碼的話,很容易出錯。而代碼寫規范的話即使出錯了查錯也會很方便。格式雖然不會影響程序的功能,但會影響可讀性。程序的格式追求清晰、美觀,是程序風格的重要構成元素。
代碼規范化的七大原則
代碼規范化基本上有七大原則,體現在空行、空格、成對書寫、縮進、對齊、代碼行、注釋七方面的書寫規范上。
1) 空行
空行起著分隔程序段落的作用。空行得體將使程序的布局更加清晰。空行不會浪費內存,雖然列印含有空行的程序會多消耗一些紙張,但是值得。
規則一:定義變數後要空行。盡可能在定義變數的同時初始化該變數,即遵循就近原則。如果變數的引用和定義相隔比較遠,那麼變數的初始化就很容易被忘記。若引用了未被初始化的變數,就會導致程序出錯。
規則二:每個函數定義結束之後都要加空行。
總規則:兩個相對獨立的程序塊、變數說明之後必須要加空行。比如上面幾行代碼完成的是一個功能,下面幾行代碼完成的是另一個功能,那麼它們中間就要加空行。這樣看起來更清晰
H. C語言程序注釋
C語言編程規范-注釋
規則:
1:一般情況下,源程序有效注釋量必須在20%以上。
說明:注釋的原則是有助於對程序的閱讀理解,在該加的地方都加了,注釋不宜太多也不能太少,注釋語言必須准確、易懂、簡潔。
2:說明性文件(如頭文件.h文件、.inc文件、.def文件、編譯說明文件.cfg等)頭部應進行注釋,注釋必須列出:版權說明、版本號、生成日期、作者、內容、功能、與其它文件的關系、修改日誌等,頭文件的注釋中還應有函數功能簡要說明。
示例:下面這段頭文件的頭注釋比較標准,當然,並不局限於此格式,但上述信息建議要包含在內。
/*************************************************
Copyright (C), 1988-1999, Tech. Co., Ltd.
File name: // 文件名
Author:
Version:
Date: // 作者、版本及完成日期
Description: // 用於詳細說明此程序文件完成的主要功能,與其他模塊
// 或函數的介面,輸出值、取值范圍、含義及參數間的控
// 制、順序、獨立或依賴等關系
Others: // 其它內容的說明
Function List: // 主要函數列表,每條記錄應包括函數名及功能簡要說明
1. ....
History: // 修改歷史記錄列表,每條修改記錄應包括修改日期、修改
// 者及修改內容簡述
1. Date:
Author:
Modification:
2. ...
*************************************************/
3:源文件頭部應進行注釋,列出:版權說明、版本號、生成日期、作者、模塊目的/功能、主要函數及其功能、修改日誌等。
示例:下面這段源文件的頭注釋比較標准,當然,並不局限於此格式,但上述信息建議要包含在內。
/************************************************************
Copyright (C), 1988-1999, Tech. Co., Ltd.
FileName: test.cpp
Author:
Version :
Date:
Description: // 模塊描述
Version: // 版本信息
Function List: // 主要函數及其功能
1. -------
History: // 歷史修改記錄
<author> <time> <version > <desc>
David 96/10/12 1.0 build this moudle
***********************************************************/
說明:Description一項描述本文件的內容、功能、內部各部分之間的關系及本文件與其它文件關系等。History是修改歷史記錄列表,每條修改記錄應包括修改日期、修改者及修改內容簡述。
4:函數頭部應進行注釋,列出:函數的目的/功能、輸入參數、輸出參數、返回值、調用關系(函數、表)等。
示例:下面這段函數的注釋比較標准,當然,並不局限於此格式,但上述信息建議要包含在內。
/*************************************************
Function: // 函數名稱
Description: // 函數功能、性能等的描述
Calls: // 被本函數調用的函數清單
Called By: // 調用本函數的函數清單
Table Accessed: // 被訪問的表(此項僅對於牽扯到資料庫操作的程序)
Table Updated: // 被修改的表(此項僅對於牽扯到資料庫操作的程序)
Input: // 輸入參數說明,包括每個參數的作
// 用、取值說明及參數間關系。
Output: // 對輸出參數的說明。
Return: // 函數返回值的說明
Others: // 其它說明
*************************************************/
5:邊寫代碼邊注釋,修改代碼同時修改相應的注釋,以保證注釋與代碼的一致性。不再有用的注釋要刪除。
6:注釋的內容要清楚、明了,含義准確,防止注釋二義性。
說明:錯誤的注釋不但無益反而有害。
7:避免在注釋中使用縮寫,特別是非常用縮寫。
說明:在使用縮寫時或之前,應對縮寫進行必要的說明。
8:注釋應與其描述的代碼相近,對代碼的注釋應放在其上方或右方(對單條語句的注釋)相鄰位置,不可放在下面,如放於上方則需與其上面的代碼用空行隔開。
示例:如下例子不符合規范。
例1:
/* get replicate sub system index and net indicator */
repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;
例2:
repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;
/* get replicate sub system index and net indicator */
應如下書寫
/* get replicate sub system index and net indicator */
repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;
9:對於所有有物理含義的變數、常量,如果其命名不是充分自注釋的,在聲明時都必須加以注釋,說明其物理含義。變數、常量、宏的注釋應放在其上方相鄰位置或右方。
示例:
/* active statistic task number */
#define MAX_ACT_TASK_NUMBER 1000
#define MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */
10:數據結構聲明(包括數組、結構、類、枚舉等),如果其命名不是充分自注釋的,必須加以注釋。對數據結構的注釋應放在其上方相鄰位置,不可放在下面;對結構中的每個域的注釋放在此域的右方。
示例:可按如下形式說明枚舉/數據/聯合結構。
/* sccp interface with sccp user primitive message name */
enum SCCP_USER_PRIMITIVE
{
N_UNITDATA_IND, /* sccp notify sccp user unit data come */
N_NOTICE_IND, /* sccp notify user the No.7 network can not */
/* transmission this message */
N_UNITDATA_REQ, /* sccp user's unit data transmission request*/
};
11:全局變數要有較詳細的注釋,包括對其功能、取值范圍、哪些函數或過程存取它以及存取時注意事項等的說明。
示例:
/* The ErrorCode when SCCP translate */
/* Global Title failure, as follows */ // 變數作用、含義
/* 0 - SUCCESS 1 - GT Table error */
/* 2 - GT error Others - no use */ // 變數取值范圍
/* only function SCCPTranslate() in */
/* this moal can modify it, and other */
/* mole can visit it through call */
/* the function GetGTTransErrorCode() */ // 使用方法
BYTE g_GTTranErrorCode;
12:注釋與所描述內容進行同樣的縮排。
說明:可使程序排版整齊,並方便注釋的閱讀與理解。
示例:如下例子,排版不整齊,閱讀稍感不方便。
void example_fun( void )
{
/* code one comments */
CodeBlock One
/* code two comments */
CodeBlock Two
}
應改為如下布局。
void example_fun( void )
{
/* code one comments */
CodeBlock One
/* code two comments */
CodeBlock Two
}
13:將注釋與其上面的代碼用空行隔開。
示例:如下例子,顯得代碼過於緊湊。
/* code one comments */
program code one
/* code two comments */
program code two
應如下書寫
/* code one comments */
program code one
/* code two comments */
program code two
14:對變數的定義和分支語句(條件分支、循環語句等)必須編寫注釋。
說明:這些語句往往是程序實現某一特定功能的關鍵,對於維護人員來說,良好的注釋幫助更好的理解程序,有時甚至優於看設計文檔。
15:對於switch語句下的case語句,如果因為特殊情況需要處理完一個case後進入下一個case處理,必須在該case語句處理完、下一個case語句前加上明確的注釋。
說明:這樣比較清楚程序編寫者的意圖,有效防止無故遺漏break語句。
示例(注意斜體加粗部分):
case CMD_UP:
ProcessUp();
break;
case CMD_DOWN:
ProcessDown();
break;
case CMD_FWD:
ProcessFwd();
if (...)
{
...
break;
}
else
{
ProcessCFW_B(); // now jump into case CMD_A
}
case CMD_A:
ProcessA();
break;
case CMD_B:
ProcessB();
break;
case CMD_C:
ProcessC();
break;
case CMD_D:
ProcessD();
break;
...
建議:
1:避免在一行代碼或表達式的中間插入注釋。
說明:除非必要,不應在代碼或表達中間插入注釋,否則容易使代碼可理解性變差。
2:通過對函數或過程、變數、結構等正確的命名以及合理地組織代碼的結構,使代碼成為自注釋的。
說明:清晰准確的函數、變數等的命名,可增加代碼可讀性,並減少不必要的注釋。
3:在代碼的功能、意圖層次上進行注釋,提供有用、額外的信息。
說明:注釋的目的是解釋代碼的目的、功能和採用的方法,提供代碼以外的信息,幫助讀者理解代碼,防止沒必要的重復注釋信息。
示例:如下注釋意義不大。
/* if receive_flag is TRUE */
if (receive_flag)
而如下的注釋則給出了額外有用的信息。
/* if mtp receive a message from links */
if (receive_flag)
4:在程序塊的結束行右方加註釋標記,以表明某程序塊的結束。
說明:當代碼段較長,特別是多重嵌套時,這樣做可以使代碼更清晰,更便於閱讀。
示例:參見如下例子。
if (...)
{
// program code
while (index < MAX_INDEX)
{
// program code
} /* end of while (index < MAX_INDEX) */ // 指明該條while語句結束
} /* end of if (...)*/ // 指明是哪條if語句結束
5:注釋格式盡量統一,建議使用"/* …… */"。
6:注釋應考慮程序易讀及外觀排版的因素,使用的語言若是中、英兼有的,建議多使用中文,除非能用非常流利准確的英文表達。
說明:注釋語言不統一,影響程序易讀性和外觀排版,出於對維護人員的考慮,建議使用中文。
I. C語言教程的內容是
C語言學習從入門到精通的一套經典視頻教程,本課程通過高清晰的視頻、概念詳解、實例精講、習題測試讓你很快的掌握C語言的相關知識,並領略運用到實例中去。在針對一些用戶認為C語言比較難學的情況下,本課程從初中級用戶的角度出發,進行合理的內容安排,突出學、練、用、鞏固相結合的特點,以通俗易懂的語言,豐富多彩的實例,詳細介紹了使用C語言進行程序開發應該掌握的各方面知識。本課程主要給大家講解了C語言概述,演算法,數據類型,運算符與表達式,常用的數據輸入、輸出函數,選擇結構程序設計,循環控制,數組,函數,指針,結構體和共用體,位運算,預處理,模塊化編程,編程規范,C語言常見問題及分析,習題測試等內容。所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的講解,可以使讀者輕松領會C語言程序開發的精髓,快速提高開發技能。
課程內容詳盡,實例豐富,非常適合作為單片機及編程初學者的學習課程,也可作為大中院校相關專業在校學生及畢業生的教學輔導課程、短期C語言培訓課程,是C語言編程愛好者從入門到深入的經典課程。
課程共分為15講,每節課的內容大綱如下:
第1課 C語言概述
1、幾種常見的程序設計語言
2、C語言出現的歷史背景
3、C語言的特點
4、簡單的C程序介紹
5、C程序的上機步驟
6、習題測試
第2課 程序的靈魂-演算法
1、程序設計過程
2、演算法的基本概念
3、演算法的特徵
4、演算法的表示方法(流程圖)
5、結構化程序設計方法
6、習題測試
第3課 C語言的數據類型
1、預備知識
2、C語言的數據類型
3、常量與變數
4、不同數據類型之間的轉換
5、運算符號和表達
6、習題測試
第4課 C語言順序程序設計
1、C語句概述
2、賦值語句
3、數據的輸入輸出
4、字元數據輸入輸出
5、格式輸入輸出
6、順序程序舉例
7、習題測試
第5課 C語言選擇程序設計
1、關系運算符和關系表達式
2、邏輯運算符和邏輯表達式
3、if 語句---條件判斷
4、條件運算符
5、switch 語句
6、選擇程序舉例
7、習題測試
第6課 C語言的循環控制
1、概述
2、goto語句及與if語句構成循環
3、while語句
4、do …while語句
5、for語句
6、循環的嵌套
7、幾種循環的比較
8、break語句和contiune語句
9、程序舉例
10、習題測試
第7課 C語言數組
1、一維數組
2、二維數組及多維數組
3、字元數組和字元串
4、程序舉例
5、習題測試
第8課 函數
1、概述
2、函數定義的一般格式
3、函數的返回值
4、函數的調用
5、函數參數及其傳遞方式
6、函數的嵌套與遞歸調用
7、數組作為函數參數
8、變數的存儲屬性
9、內部函數和外部函數
10、習題測試
第9課 C語言預處理命令
1、編譯預處理
2、宏定義
3、文件包含
4、條件編譯
5、習題測試
第10課 指針
1、指針的概念
2、指針變數
3、指針與數組
4、指針與字元串
5、指針與函數
6、返回指針值的函數
7、指針數組和多級指針
8、習題測試
第11課 結構體與共用體
1、結構類型與結構變數的定義
2、結構變數的引用與初始化
5、結構數組
6、指向結構類型數據的指針
7、用指針處理鏈表
8、共用體
9、枚舉類型
10、用typedef定義別名
11、程序舉例
12、習題測試
第12課 位運算
1、位運算概述
2、位運算符的使用方法
3、習題測試
第13課 單片機C語言的模塊化編程
1、模塊化編程的優點
2、C語言源文件(*.c)文件和頭文件(*.h)的的作用
3、模塊化編程設計步驟
4、程序實例
5、模塊化程序的移植
6、習題測試
第14課 C語言編程規范
1、編碼規范概述
2、編程排版規范
3、編程注釋規范
4、命名規則
5、可讀性規范
6、變數與結構規范
7、函數與過程規范
8、編程效率規范
9、質量保證規范
10、宏規范
11、代碼編輯
12、編譯
13、審查
14、代碼測試
15、維護
16、習題測試
第15課 C語言編程常見出錯問題及分析
1、C語言的一些基本概念
2、位(bit)和位元組(byte)
3、變數和數據存儲
4、數據文件
5、字元串操作
6、數組
7、指針和內存分配
8、函數
9、編譯預處理
10、標准庫函數
11、系統調用
12、可移植性
13、編程風格和標准
14、程序的編寫和編譯
15、調試