### 基本結構
C語言中大部分內容都是記錄在.c作為擴展名的文件里的,這種文件叫做C語言的源文件。
C語言中少一部分內容需要記錄在以.h作為擴展名的文件里,這種文件叫做C語言的頭文件。
C語言中每個計算步驟最后都必須用;結束,用;結束的一個計算步驟叫做語句。
2 + 6;
C語言程序中絕大多數語句都應該寫在大括號里。
{2 + 6;}
C語言中大括號可以用來表示函數,目前可以把函數當做一組語句看待。
C語言程序中每個函數都必須有名字,不同函數的名字必須不同。
C語言程序中必須包含一個叫做main的主函數。
int main(){
2 + 6;
}
程序從主函數的第一條語句開始執行,到最后一條語句結束,然后整個程序結束。
C語言中允許函數在完成所有工作之后,用一個數字表示它的工作結果,這個數字叫做函數的返回值。
主函數應該返回值,如果返回值是0就表示程序希望計算機認為它正常結束,如果不是0就表示程序希望計算機認為它出問題了。
在主函數中當出現return的時候,就是結束函數的執行,在任何時候都起到這個作用,此外輔助作用是用來指定返回值的數字。
int main(){
2 + 6;
return 0; // 主要是結束函數,其次是返回值
}
### 數據類型
計算機里根據不同數字在某個方面的區別把數字分成幾組,每組叫做一個數據類型。
每種數據類型都有自己的名字。
整數類型是一種數據類型,它的名字是int。
整數類型里包含幾乎所有不帶小數點的數字。
程序中所有數字都必須是有類型的。
程序中不帶小數點的數字默認都是整數類型。
函數的返回值也是有數據類型的,函數返回值的類型寫在函數名稱前。
### 預處理指令
C語言程序中通常包含預處理指令。
預處理指令以#開頭,但是不以;結尾。
C語言中遇到的預處理指令都可以把文件里的內容替換成其他內容。
-#include 是一個預處理指令,它可以把一個頭文件的內容包含到當前文件中,在這個預處理指令中需要使用相對路徑表示被包含頭文件的位置
兩種表示路徑的方式
* <> : 表示以系統中預先規定好的一組目錄依次作為起點查找頭文件。
* "" : 表示首先以當前文件所在目錄作為起點查找,然后再以系統中規定好的一組目錄依次作為起點查找。
```
#include <stdio.h>
#include "demo1.h"
int main(){
2 + 5;
return 0;
}
```
### 注釋
C語言程序中可以加入文字性的說明信息,這些信息必須加入到注釋區域中。
計算機會直接忽略注釋區域里的內容。
注釋可以是多行注釋,也可以是單行注釋。
單行注釋是以//做開頭一直到行尾。
多行注釋是以 /* 做開頭,以 */ 做結尾。
/* 主函數
* 練習
* */
int main(){
2 + 5;
return 0; // 函數結束,返回值是0
}
### 標識符
C語言中大量使用名稱區分不同的內容,這些名稱叫做標識符。
標識符最好用英文單詞編寫。
標識符的規則:
* 1. 第一個字符應該是英文字母或者下劃線
* 2. 后面的字符可以是字母、下劃線、阿拉伯數字
* 3. C語言中大小寫是區分的,因此大寫和小寫的標識符是不相同的
* 4. 關鍵字不能作為標識符使用,例如:return
* 5. 標識符的長度沒有限制,但是計算機只會截取前面的一部分使用
* 6. 標識符應該采用駝峰方式或者下劃線方式書寫
### 編譯器
想要將C語言讓計算機可以識別,那么就需要使用編譯器將我們編寫好的程序編譯成計算機可以識別的語言。
gcc是linux系統中C語言的編譯器。
MinGW是windows里的gcc。
使用gcc來編譯一個程序文件:
gcc main.c
編譯沒有報錯的話,默認會得到一個`a.out`的文件,這個文件就是給計算機看的文件。
gcc常見選項的介紹
-E 只處理預處理指令
-c 只處理預處理指令和編譯
處理結果是以.o作為擴展名的文件,這種文件叫做目標文件
這樣的文件,計算機認識,但是缺少東西,所以還不能執行
-o 可以決定得到的結果文件名稱
-std=c89/-std=c99 這個選項決定采用什么版本C語言的標準規范進行編譯,默認采用的c89
### 總結小例子
/*
C語言程序結構練習
*/
#include <stdio.h>
int main(){
3000 /* 手機 */ - 1000 /* 手表 */; // 計算手機和手表的價格差
return 0;
}