C語言第五章:C語言的模塊化編程

第一節
模塊化編程(多文件開發):就是多文件(.c文件)編程,一個 .c 文件和一個 .h 文件可以被稱爲一個模塊。
多文件開發的源程序是:?
.c C語言的源文件
.h (header頭文件)
1)、方法的聲明 但是不能實現方法
2)、聲明變量(聲明 .h文件 實現.c文件)
3)、聲明結構體
多文件開發的注意事項
關於頭文件的內容,初學者還必須注意:
1)頭文件中可以和C程序一樣引用其它頭文件,可以寫預處理塊,但不要寫具體的語句。
2)可以聲明函數,但不可以定義函數。
3)可以聲明常量,但不可以定義變量。
4)可以“定義”一個宏函數。注意:宏函數很象函數,但卻不是函數。其實還是一個申明。
5)結構的定義、自定義數據類型一般也放在頭文件中。
6)多文件編程時,只能有一個文件包含 main() 函數,因爲一個工程只能有一個入口函數。我們
把包含 main() 函數的文件稱爲主文件。
7)爲了更好的組織各個文件,一般情況下一個 .c 文件對應一個 .h 文件,並且文件名要相同,
例如 fun.c 和 fun.h。
8)頭文件要遵守冪等性原則,即可以多次包含相同的頭文件,但效果與只包含一次相同。
9)防止重複包含的措施

第二節 計算機中的進制及其轉換形式
1)、進制轉換的要素:數位 、基數、位權
數位: 數位是指數碼在一個數中所處的位置
基數:每個數位上所能使用的數碼的個數
位權:位權是指一個固定值

1)機器數
一個數在計算機中的二進制表示形式,
叫做這個數的機器數。機器數是帶符號的,在計算機
用一個數的最高位存放符號, 正數爲0, 負數爲1.
比如,十進制中的數 +3 ,計算機字長爲8位,轉換成二進制就是00000011。如果是 -3 ,就
是 10000011 。
那麼,這裏的 00000011 和 10000011 就是機器數。
2)真值
因爲第一位是符號位,所以機器數的形式值就不等於真正的數值。例如上面的有符號數
10000011,其最高位1代表負,其真正數值是 -3 而不是形式值131(10000011轉換成十進制等於
131)。所以,爲區別起見,將帶符號位的機器數對應的真正數值稱爲機器數的真值。
例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1

一、 位運算
1、 運算符:用來連接操作數,組成有意義的式子
分類:算術 關係 邏輯 位運算
2、 位運算:用於整數的二進制位之間的運算
1)、& 按位與:有0則0 ,同1爲1
2)、| 按位:有1爲1 同 0 則0
3)、~按位取反:1反0 0 反 1
4)、^ 按位異或:相同爲0 ,不同爲1
5)、>>右移 :右移位,移出去的部分捨去,高位要補符號位;
總結:一個數右移n位的值等於原值除以2的N次方的整數部分
致命的問題: 右移不會改變一個數的正負性
6)、<<左移 : 左側移動出去的位就丟了,低位開始補0 記憶技巧:向左移動N位,相當於原數*2^N次方
致命的問題:
一個負數,當左移時會改變一個數的正負性

問題?
兩次異或的值是什麼?
自己
3、位運算使用技巧
1、任何數和1進行按位與可以獲取數的最低位(偶數是0 ,奇數是1)
2、想把某一爲置爲0 就可以讓他們和這個位的0 與
4、使用異或可以交換兩個變量的值 int x =4 ,y=5;
x=x^y;
y=x^y;
x=x^y

思考&實現2:
1)寫一個函數把一個10進制數按照二進制格式輸出
第三節
變量在內存中存儲的原則
內存分配給變量的存儲空間是從高到低,低位保存在低地址字節上,高位保存在高地址字節上
思考:
int a, b 那個變量的地址高?
但是在數組中是怎樣存儲 的???
整形變量修飾符:
改變存儲空間:int short long long long 改變符號:signed unsined
32位系統下:
long 4個字節
long long 8個字節 64位系統下都是8個字節
字符的存儲問題
Char型數據的存儲原理
char a=’a’ —–>取出’a’的ASCII碼值,97,然後轉換2進制,存儲在一個字節中。
注意事項
1)當把一個字符賦值給一個char類型變量,那麼系統首先查這個字符所對應的ASCII碼,然後把
這個ASCII值放到變量中
char c = ‘a’;
printf(“%d\n”,c);
2)根據變量中存儲的ASCII值,去查ASCII表中對應字符,然後把這個字符打印控制檯上,整形和
字符型可以互相轉換。
printf(“%c\n”,c);
3)char z = ‘我’;
char字節,一箇中文字符佔3字節(unicode表),所有char不可以存儲中文
4)不支持多個字符,多個字符是字符串
char two = ‘ac’;
printf(“%c\n”,two);

發佈了55 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章