設計特性:融合了控制特性的現代語言,可以表現出只要彙編才具有的精細控制能力;
高效性:c程式緊湊且執行速度快;
可移植性:在乙個系統上編譯的c程式經過很少改動或不修改可移植到另乙個系統,c編譯器大約在40多個系統可用;
強大功能和靈活性:強大的unix系統大部分就是c寫的還有很多其他語言的編譯器是用c寫的。
定義程式目標:考慮程式大概需要什麼,要完成什麼事情,用一般概念考慮問題而不是計算機語言。
設計程式:考慮程式如何完成目標,使用者介面應該怎麼樣,程式如何組織,大概多長時間來完成。
編寫**:
編譯:將源**轉換為可執行**。真正涉及兩部分編譯和鏈結,編譯器將源**轉為中間**,鏈結器將中間**與其他**也就是那些庫相結合生成可執行檔案。
執行程式:執行可執行檔案
測試和除錯程式:
維護和修改程式:
源**:我們自己寫的c**。
中間**:由源**轉換成的機器語言**,放置於目標**檔案。
啟動**:相當於你的程式和作業系統間的介面。
庫**:標準c庫所包含的例程。
可執行檔案:鏈結器將目標**、啟動**、庫**三者結合放於乙個檔案,也就是可執行檔案。
目前有許多c實現方式,但都需要遵守乙個公認的標準。
k&r c:也就是經典c,是大家接受的標準。因為缺乏官方的標準,所以提供unix實現的庫成為事實上的標準。
c89或c90:是第乙個ansi/iso標準,89年美國標準化組織ansi定義了語言和標準c庫,國際標準化組織iso於90年接受這一標準,所以叫c89或c90。
c99:聯合ansi/iso修訂產生,但有些編譯器若沒實現c99你就會看不到c99的一些特性。
變數名都應避開關鍵字。
auto :宣告自動變數
short :宣告短整型變數或函式
int: 宣告整型變數或函式
long :宣告長整型變數或函式
float:宣告浮點型變數或函式
double :宣告雙精度變數或函式
char :宣告字元型變數或函式
struct:宣告結構體變數或函式
union:宣告共用資料型別
typedef:用以給資料型別取別名
unsigned:宣告無符號型別變數或函式
extern:宣告變數是在其他檔案正宣告
register:宣告暫存器變數
static :宣告靜態變數
if:條件語句
else :條件語句否定分支(與 if 連用)
switch :用於開關語句
case:開關語句分支
for:一種迴圈語句
do :迴圈語句的迴圈體
while :迴圈語句的迴圈條件
goto:無條件跳轉語句
continue:結束當前迴圈,開始下一輪迴圈
break:跳出當前迴圈
default:開關語句中的「其他」分支
sizeof:計算資料型別長度
return :子程式返回語句(可以帶引數,也可不帶引數)迴圈條件
c90新增—
enum :宣告列舉型別
const :宣告唯讀變數
void :宣告函式無返回值或無引數,宣告無型別指標
signed:宣告有符號型別變數或函式
volatile:說明變數在程式執行中可被隱含地改變
c99新增—
inline:
restrict:
_bool:布林值,true為1,false為0
_complex:複數
_imaginary:虛數
後面的關於c筆記系列的都以這種標準表示。
* 希望替換的特殊術語由斜體表示。如:
type variable;
* type可以由int代替,variable可以由num代替。
* 粗體表示使用者輸入內容。
* 特殊按鍵用 表示。如[enter]
Apache Shiro系列一,概述 初識
一 什麼是 shiro apache shiro 是乙個強大 靈活 開源的安全框架,它支援使用者認證 許可權控制 企業會話管理以及加密等。apache shiro 的第乙個也是最重要的乙個目標就是易於使用和理解。對應用程式做安全管理常常很複雜,甚至很痛苦,但是實際上完全可以避免。乙個好的安全安全管理...
Spring系列(一)概述 結構
詳細的內容轉w3 spring教程 spring體系結構 控制反轉 依賴注入 非入侵式 容器 面向切面程式設計 元件化 一站式 最主要的特點是控制反轉和依賴注入 spring 框架提供約 20 個模組,可以根據應用程式的要求來使用。核心容器由spring core,spring beans,spri...
演算法筆記一 概述
分析乙個演算法,主要是考量它的執行的時間代價和空間代價,而在評估時間代價時,還要分析下最好情況下的代價和最壞情況下的代價。最好情況,用來分析該演算法的最佳應用場景 最壞情況,用來確定該演算法的最長執行時間的上限 某些演算法可能會更加的關注於平均情況,當平均情況趨向於較好情況時,是有意義的,這裡就需要...