1. include 頭文件包含
#include <stdio.h>這個是hello world程序的第一句話
# 代表預編譯指令
#include的意思就是頭文件包含,使用C語言庫函數需要提前包含庫函數對應的頭文件。
stdio.h這個文件在操作系統的系統目錄下
include有兩種寫法
#include <文件名>,如果文件在系統目錄下,那么需要用<>
#include “文件名”,如果文件在當前目錄下,那么用""
2. main函數
main函數又叫主函數,main函數是c語言程序的入口,程序是從main函數開始執行的,一個c語言程序中只能有一個main函數。
c語言可執行程序必須也只能有一個main函數。
3. 注釋
//叫行注釋,注釋的內容編譯器是忽略的,注釋主要的作用是在代碼中加一些說明和解釋,這樣有利於代碼的閱讀, 行注釋是從c++語言借鑒過來的
/* */ 叫塊注釋,塊注釋是c語言標准的注釋方法
4. {}括號,程序體和代碼塊
C語言每句可執行代碼都是;結尾
{}叫代碼塊,一個代碼塊內部可以有一條或者多條語句
所有的可執行語句必須是在代碼塊里面
所有的函數都是由
函數名
程序體,{語句}組成的。
5. 聲明和定義
int a; //定義一個變量
extern int b; // 聲明一個變量
int和extern都是c語言的關鍵字,a和b是用戶可以自己起的名字
6. C語言變量命名規范
可以使用大小寫字母,下划線,數字,但第一個字母必須是字母或者下划線,字母區分大小寫。
7. printf函數
printf是c語言庫函數,功能是向標准輸出設備輸出一個字符串
printf(“hello world\n”);//\n的意思是回車換行
8. return 語句
return代表函數執行完畢,返回return代表函數的終止.
如果main定義的時候前面是int,那么return后面就需要寫一個整數,如果main定義的時候前面是void,那么return后面什么也不需要寫
在main函數中return 0代表程序執行成功,return -1代表程序執行失敗
在C語言中 int main()和 void main都可以
int main()和void main()在c語言中是一樣的,但C++只接受int main這種定義方式。
9. system函數調用
在使用system函數之前需要包含stdlib.h這個頭文件,system主要的功能是通過程序執行另外一個程序
system返回值在windows和unix下的不同
如果在命令行執行一個程序,那么這個程序的調用者就是操作系統,如果在代碼中通過system執行一個程序,那么這個程序的調用者就是自己寫的代碼本身.
C語言所有的庫函數調用,只能保證語法是一致的,但不能保證執行結果是一致的,同樣的庫函數在不同的操作系統下執行結果可能是一樣的,也可能是不一樣的。
POSIX
POSIX是一個標准,只要符合這個標准的函數,在不同的系統下執行的結果就可以一致。
Unix和linux很多庫函數都是支持POSIX的,但windows支持的比較差。
如果將unix代碼移植到linux一般代價很小,如果把windows’代碼移植到unixl或者linux就比較麻煩。
10. C語言編譯過程,GCC參數簡介
C語言編譯過程
1.預編譯->2.編譯->3.鏈接
-E 預編譯
Gcc –E參數代表預編譯
gcc -o a11.c -E a1.c
預編譯a1.c,預編譯之后的文件名叫a11.c
預編譯功能之一:將#include包含的頭文件做簡單的文本替換
在C語言中#開頭的語句又叫預編譯指令
預編譯功能之二:將代碼中的注釋刪除
-c編譯
編譯的作用是把文本的c語言編譯為二進制的指令
gcc -c a11.c
編譯a11.c,編譯后的文件名叫a.o
鏈接
C語言寫的程序是需要依賴各種庫的,所以編譯之后還需要把庫鏈接到最終的可執行程序中去
Gcc沒有單獨的鏈接參數
gcc -o a.o
鏈接a.o,最后生成的文件叫a
11. 操作系統
64位和32位操作系統區別
CPU內存結構和寄存器
寄存器是CPU內部最基本的存儲單元
CPU對外是通過總線來和外部設備交互的,總線的寬度是8位,同時CPU的寄存器也是8位,那么這個CPU就叫8位CPU
如果總線是32位,寄存器也是32位的,那么這個CPU就是32位CPU
有一種CPU內部的寄存器是32位的,但總線是16位,准32位CPU
所有的64位CPU兼容32位的指令,32位要兼容16位的指令,所以在64位的CPU上是可以識別32位的指令
在64位的CPU構架上運行了64位的軟件操作系統,那么這個系統是64位
在64位的CPU構架上,運行了32位的軟件操作系統,那么這個系統就是32位
64位的軟件不不能運行在32位的CPU之上的。
32位的系統最大支持4G的內存,64位則可以大於這個限制
RISC與CISC CPU架構
RISC精簡指令集
CISC復雜指令集
SPARC,X86與ARM
SPARC,ARM都屬於精簡指令集
X86典型復雜指令
12. 常用IDE快捷鍵
QT常用快捷鍵
Ctrl + I, 自動格式化代碼
Ctrl + /, 注釋/取消注釋
Alt + enter, 自動完成類函數定義
F9, 設置斷點
F5,調試運行
Ctrl + r,不調試運行
Ctrl + b,編譯,不運行
F10, next調試
F11, step調試
VS常用快捷鍵
Ctrl + k,Ctrl + f, 自動格式化代碼
Ctrl +k, Ctrl + c, 注釋代碼
Ctrl + k,Ctrl + u, 取消注釋代碼
F9, 設置斷點
F5,調試運行
Ctrl + F5,不調試運行
Ctrl + Shift + b,編譯,不運行
F10, next調試
F11, step調試