日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下c的学习

發布時間:2024/4/13 linux 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下c的学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.c語言相較于其他語言的優點:
(1)良好的移植性
(2)運行效率高
(3)生成目標代碼質量高,程序執行效率高
2.靜態庫與動態庫的定義與區別
(1)庫(Library)說白了就是一段編譯好的二進制代碼,加上頭文件就可以供別人使用。
什么時候我們會用到庫呢?一種情況是某些代碼需要給別人使用,但是我們不希望別人看到源碼,就需要以庫的形式進行封裝,只暴露出頭文件。另外一種情況是,對于某些不會進行大的改動的代碼,我們想減少編譯的時間,就可以把它打包成庫,因為庫是已經編譯好的二進制了,編譯的時候只需要 Link 一下,不會浪費編譯時間。
上面提到庫在使用的時候需要 Link,Link 的方式有兩種,靜態和動態,于是便產生了靜態庫和動態庫。
(2)靜態庫的定義
靜態庫即靜態鏈接庫(Windows 下的 .lib,Linux 和 Mac 下的 .a)。之所以叫做靜態,是因為靜態庫在編譯的時候會被直接拷貝一份,復制到目標程序里,這段代碼在目標程序里就不會再改變了。
(3)動態庫定義
動態庫即動態鏈接庫(Windows 下的 .dll,Linux 下的 .so,Mac 下的 .dylib)。與靜態庫相反,動態庫在編譯時并不會被拷貝到目標程序中,目標程序中只會存儲指向動態庫的引用。等到程序運行時,動態庫才會被真正加載進來。
(4)靜態庫在程序編譯時會被連接到目標代碼中,程序運行時將不再需要該靜態庫。
(5)動態庫在程序編譯時并不會被連接到目標代碼中,而是在程序運行是才被載入,因此在程序運行時還需要動態庫存在。
(6)無論靜態庫,還是動態庫,都是由.o文件創建的。
3.c的數據類型
3.1整型類型
類型 字節數 取值范圍
(1)int 4個字節 -2^31 ~ 2^31-1
(2)short int 2個字節 -215~215-1
(3)long int 8個字節 -263~263-1
(4)char 1個字節 -27~27-1
前四個默認是有符號類型的,后面兩個是無符號類型的
(5)unsigned int 4個字節 0~2^31-1
(6)unsigened char 1個字節 0~ 2^7-1
3.2 浮點類型
(1)float 4個字節
(2)double 8個字節
4.測量數據類型的大小用 sizeof
5.測數據類性取值范圍時
調用關鍵字,例如INT_MAX,INT_MIN 需要調用庫函數<limits.h>
因此c文件前應加上預處理語句#include<stdio.h>
6.注釋
6.1在c語句前加上//就行
6.2#if 0
#endif
在語句中間加上這兩行,這兩行間的語句就等于沒編輯在c文件中,也不進行編譯,這也是檢查c程序錯誤的一個好方法。
#if 1
#endif
…………
7.類型的強制轉換
7.1普通強制轉換
例如
int a,b;
(float)a+(float)b運算過程就是先將a,b轉換成float參與運算
結果就是個float類性
7.2數據類型的隱性轉換
int a=-20;
unsigned int b=6;
printf("%u\n",a+b);
這時輸出的結果就該是將a,b轉換成無符號類型再相加
數據類型轉換 char,short->int->unsigned->long->double<-float

總結

以上是生活随笔為你收集整理的linux下c的学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。