C語言筆記系列 一 概述

2021-07-13 15:39:16 字數 2086 閱讀 1235

設計特性:融合了控制特性的現代語言,可以表現出只要彙編才具有的精細控制能力;

高效性: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...

演算法筆記一 概述

分析乙個演算法,主要是考量它的執行的時間代價和空間代價,而在評估時間代價時,還要分析下最好情況下的代價和最壞情況下的代價。最好情況,用來分析該演算法的最佳應用場景 最壞情況,用來確定該演算法的最長執行時間的上限 某些演算法可能會更加的關注於平均情況,當平均情況趨向於較好情況時,是有意義的,這裡就需要...