C语言核心技术-C语言概述与开发环境搭建
C語言概述
C語言發展簡史
- 起源
1972年,貝爾實驗室的Dennis Ritchie和Ken Thompson在開發Unix操作系統時設計了C語言,該操作系統的90%以上的代碼都是由C語言實現,后期的Linux,macOS,Android,IOS都是基于Unix發展而來的。
- 標準
1987年Dennis Ritchie和Brian Kernighan編寫了The C Programming Language第一版是公認的C標準實現,而沒有定義C庫。
而后期ANSI/ISO先后于1990年、1999年和2011年發布了C90標準、C99標準和C11標準,該標準定義了C語言和C標準庫。
C語言特性
C語言作為面向過程的高級程序設計語言,能夠輕松的實現自頂向下的規劃、結構化編程和模塊化設計,這樣使得程序結構更加簡潔,可擴展性強以及更加容易維護。
而且C語言有著高效(執行速度快)、功能強大(嵌套匯編)以及可移植性(標準庫可移植)、功能強大等優點,而且也存在著對系統平臺庫依賴嚴重,由于編程風格自由,經驗不足也會容易導致出錯,編寫代碼實現周期長,同樣的代碼在不同的操作系統(或者編譯器)下可能會有不同的表現等缺點。
C語言應用場景
C語言偏向硬件驅動、操作系統、底層應用(數據庫、編譯器)、嵌入式應用開發、游戲引擎等應用場景。
硬件驅動的絕大部分實現是由C語言和匯編語言實現的。
主流操作系統(Unix,Linux,macOS,Windows,Android,iOS)的底層實現都是由C語言和部分匯編實現的。
C++,Java,Python,Swift的編譯器或者解釋器都是由C語言實現的。
Git,Nginx,Redis,MySQL,Apache,Linux Kernel都是使用C語言實現的,而且都是開放源代碼的,大部分代碼可以在GitHub中獲取到,可以通過閱讀源碼提升自己的設計和編碼能力。
使用Visual Studio Code+gcc 開發C程序
Visual Studio Code下載與安裝
HelloWorld是學習一門編程語言的入門程序,如果你能獨立編寫并運行HelloWorld,那么就意味著邁入了編程的大門了。
Visual Studio Code是微軟推出的一款開源、跨平臺(Windows,Ubuntu,macOS)的編輯器,這里使用它來編寫C語言的源代碼,當然除了編寫C代碼之外,還可以用來編寫C++,Java,Python,Go,JavaScript,PHP程序等等。
為什么首先要使用Visual Studio Code來編寫第一個C程序呢,因為Visual Studio Code只是一個編輯器,用于編寫源碼,并不提供編譯或者解釋運行程序的功能。
通過它來對比之前介紹的IDE,體驗下使用IDE開發程序帶來的好處,也有利于理解IDE背后的相關機制。
在使用Visual Studio Code之前首先去官網下載
?
然后傻瓜一鍵式安裝,安裝完成以后啟動Visual Studio Code會看到啟動界面。
?
關于Visual Studio Code的詳細使用可以參考官方提供的文檔。
使用Visual Studio編輯源文件
1.在系統的D盤下創建目錄vs_code\c用于存放C語言的源程序(即C代碼)
2.在Visual Studio Code中將D:\vs_code\c目錄添加到工作區的文件夾
?
選擇D:\vs_code\c文件夾作為Visual Studio開發C程序的工作區
?
3.在工作區D:\vs_code\c目錄下創建源文件helloworld.c,C語言的源文件都是以.c結尾的,并編寫以下內容
#include <stdio.h> int main(int argc, char *argv[]){printf("Windows10 1903 & Visual Studio Code Hello World With C \n");return 0; }?
helloworld.c
?
?
gcc安裝與配置
當源文件編輯好完成以后,需要安裝和配置gcc,因為Visual Studio Code并沒有提供編譯C程序的功能。
如果你之前已經下載安裝過Qt,那么恭喜不用額外安裝gcc,因為Qt已經集成了編譯器。
只需要將gcc在Qt的bin目錄: C:\Qt\Qt5.13.0\Tools\mingw730_64\bin 添加至PATH環境變量即可。
?
當在終端上執行gcc命令時系統會從該目錄尋找gcc對應的可執行程序gcc.exe。
?
當gcc的PATH環境變量配置成功之后,便可以打開命令提示符(即終端),輸入gcc -v便可查看gcc版本信息
?
?
然后在終端上運行a.exe,程序會將字符串Windows10 1903 & Visual Studio Code Hello World With C輸出到終端上。
?
如果想要改變編譯生成的可執行文件名稱,使用gcc時可以使用-o選項實現
?
理解gcc編譯過程
剛才在使用gcc編譯helloworld時一次性編譯鏈接生成了可執行文件(例如helloworld.exe),而實際上gcc在編譯程序時要經歷預處理、編譯、匯編、鏈接四個步驟,每個步驟gcc都提供了對應的選項(鏈接除外),并且每個步驟生成的文件后綴名也是不一樣的。
這里編寫源文件gcc_compile_option.c,用于測試gcc的各個編譯選項,如果想要查看gcc命令的所有選項,可以使用gcc --help查看所有選項及其說明
?
#include <stdio.h> #define PI 3.141592 //宏定義 int main(int argc, char *argv[]){printf("PI = %f \n",PI);return 0; }- 預處理
預處理主要是頭文件包含、宏替換以及條件編譯,預處理階段不會做語法檢查。
預處理生成的文件后綴名通常是.i,而對應的gcc選項是-E。
gcc預處理命令案例
gcc -E gcc_compile_option.c -o gcc_compile_option.i這里預編譯會將頭文件stdio.h的內容復制到gcc_compile_option.i頭文件中,并且將使用#define PI 3.141592的宏進行替換,因此最后運行程序時會看到終端上輸出PI =3.141592
- 編譯
編譯是將預處理完成的文件編譯成匯編文件。
編譯生成的文件后綴名通常是.s,而對應的gcc選項是-S。
gcc編譯案例
gcc -S gcc_compile_option.i -o gcc_compile_option.s- 匯編
匯編是將匯編文件生成對應的二進制文件。
匯編生成的文件后綴名通常是.o,而對應的gcc選項是-c。
gcc匯編案例
gcc -c gcc_compile_option.c -o gcc_compile_option.o- 鏈接
將各個二進制文件加上庫函數、啟動代碼鏈接生成可執行文件。
鏈接沒有特定的gcc選項,windows上的可執行文件名為.exe,linux上可執行文件后綴名為.out。
gcc 鏈接案例
gcc gcc_compile_option.o -o gcc_compile_option.exe?
gcc 預處理、編譯、匯編、鏈接、運行
?
?
C語言集成開發環境搭建
目前主流的操作系統(Windows,Linux,macOS)都有完善的C語言集成開發環境,用于編輯、編譯、調試、打包部署C程序。
C語言集成開發環境
Windows作為世界上最流行的桌面操作系統,當前最新版本為Windows10 1903,VisualStudio作為Windows上最強大的集成開發環境,可以開發Windows軟件,游戲,Web應用等等,最新版本為VisualStudio2019 16.2.2。
Visual Studio 2019啟動界面
Ubuntu作為最受歡迎的桌面版Linux系統之一,推薦采用跨平臺的集成開發環境Qt來編寫C/C程序。
QT Creator
macOS平臺推薦使用XCode來編寫C/C程序,而且XCode在macOS系統上是自帶的,無需額外安裝。
XCode
除此以外還有些跨平臺的C/C++ 開發工具,例如來自Jetbrains公司的CLion也可以用來編寫C/C++程序。
CLion
關于IDE的安裝以及使用,它們的官網都提供了詳細的教程,同學們可以自行去查閱。
C語言學習過程中會使用Windows10 1903+Visual Studio 2019作為主力開發環境,如果沒有特別的說明,默認的環境就是Windows10 1903和Visual Studio 2019。
使用Visual Studio 2019開發C程序
?
2.選擇基于C++的空項目
?
3.配置新項目
設置項目名稱為c-core-foundational,
項目路徑位于d:workspace\c\visualstudio2019,
解決方案名稱為c-core。
Visual Studio 2019中一個解決方案會有多個項目。
?
?
?
配置新項目
項目概覽
?
4. 創建篩選器
篩選器用于存放不同階段的代碼,在項目的源文件下創建篩選器net/ittimeline/c/foundational/object
?
5.編寫helloworld
首先選中篩選器net/ittimline/c/foundational/object
?
然后選擇基于C++文件,創建源文件helloworld.c
?
然后編輯源文件
#include <stdio.h> int main(int argc, char *argv[]) {printf("Windows10 1903 & Visual Studio 2019 Hello World With C \n");return 0; }6.gcc編譯運行helloworld.c
首先選擇項目c-core-foundational,然后鼠標右鍵選中在文件資源管理器打開。
?
此時會打開文件資源管理器,并且路徑是D:\workspace\c\visualstuido2019\c-core\c-core-foundational
?
在文件資源管理器的地址欄輸入cmd,然后使用gcc編譯、運行程序
?
helloworld詳解
hello world說明
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) {printf("Windows10 1903 & Visual Studio 2019 Hello World With C \n"); system("pause");return 0; }此段程序是調用了跨平臺的輸入輸出函數實現在控制臺輸出Windows10 1903 & Visual Studio 2019 Hello World With C 并換行,然后等待用戶輸入任意鍵(通常習慣按回車鍵)后程序退出。
雖然該程序十分簡單,但是是C語言中能夠運行的最小程序。后面編寫的程序都是在該基礎之上擴展的。
#include <stdio.h>詳解
C語言中以#開頭的表示編譯時預處理階段需要處理的。
因為在main函數中使用了printf函數,但是該函數的聲明是在標準輸入輸出文件stdio.h頭文件中。因此需要使用#include <stdio.h>將其包含在源文件helloworld.c中,該文件位于系統目錄 C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\\ucrt\stdio.h
而該函數的實現在系統庫文件中。
如果想要查看程序依賴了哪些庫文件,Ubuntu下可以使用ldd命令查看
?
std表示跨平臺的,所有以std開頭的頭文件中聲明的函數都是可以跨平臺(windows,linux,macOS)使用。
stdio表示標準輸入輸出,printf函數就是用于輸出,可以將""包含的內容數據輸出到控制臺,文件甚至是網頁。而輸入函數有scanf,用于讀取鍵盤的輸入,實現程序的交互。該函數后期再介紹詳細使用。
如果想要在Visual Studio中查看系統提供的函數的定義,可以選中函數,然后按快捷鍵F12便可查看,而返回可以使用Ctrl+-實現。
為了深入理解#include的作用,這里編寫一段程序。
首先在c-core-foundational的頭文件創建和源文件一樣目錄的篩選器net\ittimeline\c\core\foundational\object
?
然后定義頭文件include.h
?
然后將之前編寫的源文件helloworld.c的內容復制到include.h頭文件中
?
并在源文件的net\ittimeline\c\core\foundational\object\目錄下創建源文件include.c,該源文件中只需要使用#include <include.h>包含之前編寫的頭文件即可。
然后運行程序,如果發現如下錯誤
1>include.obj : error LNK2005: _main 已經在 helloworld.obj 中定義是因為在Visual Studio 中,解決方案的一個項目只能有一個main函數,如果包含了多個源文件,把其他源文件的main函數重命名成其他函數即可。
?
然后再次運行程序,程序結果和之前的helloworld運行結果是一樣的。
main函數
main函數是c/c++/java程序的入口函數,有且只能有一個,當程序執行時系統會自動調用唯一的main函數,程序從main函數開始執行。如果程序中編寫了其他的函數,其他的函數應該被main函數調用才會得到執行。
例如定義一個返回兩個整數相加的函數add,然后想要執行該函數,則必須在main函數調用。
#include <stdio.h> #include <stdlib.h> //自定義函數,返回兩個整數相加的結果 int add(int left,int right) {return left + right; } int main(int argc, char* argv[]) {int left = 10;int right = 20;//調用add函數,并定義變量保存結果int result =add(left,right);printf("%d + %d = %d",left,right,result);system("pause");return 0; }main函數左邊的的int表示函數的返回類型為整數
main函數右邊的()表示函數的參數,通過傳遞參數,將外部數據傳入函數內部處理。
{}表示函數的函數體,函數具體做什么事情,都寫在{}內,{}是成對出現的。
main函數中的 printf("Windows10 1903 & Visual Studio 2019 Hello World With C \n");表示將Windows10 1903 & Visual Studio 2019 Hello World With C輸出到控制臺,\n表示換行。而;表示語句結束,C語言中的每條語句都要使用;表示結束,否則程序會編譯錯誤。
return 0 表示返回給系統0,并結束main函數,0表示main函數正常退出。
return之后的代碼都不會執行。
#include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) {printf("Windows10 1903 & Visual Studio 2019 Hello World With C \n");system("pause");return 0;printf("Windows10 1903 & Visual Studio 2019 Hello World With C again \n"); }運行上面的程序,Windows10 1903 & Visual Studio 2019 Hello World With C again不會得到輸出。
注釋
注釋是用于描述程序的功能,為了便于程序后期的維護,在開發過程中應該添加適量的注釋,編譯器在預編譯時會刪除注釋,所以注釋的內容不會影響程序的結果。
C語言中支持的注釋包含單行注釋(//)和多行注釋(/**/)兩種,單行注釋顧名思義就是注釋一行,多行注釋可以注釋多行,需要注意的是多行注釋不能夠嵌套使用,否則會發生編譯錯誤。
增加單行注釋和多行注釋后的helloworld程序
#include <stdio.h> #include <stdlib.h> /*main函數左邊的int是函數的返回值,右邊()的內容表示函數的參數,外部數據通過函數的參數傳遞到函數的內部處理。{}表示函數的函數體,也就是函數執行的所有內容都包含在{}中,它是成對出現的。@author liuguanglei ittimelinedotnet@gmail.com@website ittimeline.net@version 2019/10/17 */ int main(int argc, char* argv[]) {// printf函數是系統自帶的函數,用于將""包含的字符串按照指定的格式輸出到終端,終端可以是控制臺、網頁或者是文件,目前是輸出到控制臺。printf("Windows10 1903 & Visual Studio 2019 Hello World With C \n");//等待輸入任意內容退出程序system("pause");return 0; }Windows常用命令
Windows命令概述
主流的操作系統(Windows,Linux(Ubuntu),MacOS)及大多數應用程序都提供了基于命令行和圖形化界面兩種交互方式,而移動端是采用手勢觸控、語音等進行交互。作為普通用戶來講,圖形化界面容易上手,而且交互效果更加直觀。
但是作為一個程序員來講,應該去熟悉各個操作系統的命令行的使用,因為命令行相對圖形化界面而言,絕大多數場景下使用更加高效。而且圖形化界面本質是對命令行的封裝,能用圖形化界面實現的基本都可以采用命令行實現。而且在服務器端(CentOS,RedHat)基本上是不會安裝圖形界面。
Windows下想要使用命令,必須首先啟動控制臺。
Windows系統可以使用快捷鍵Windows+r調出運行
?
后輸入cmd,便可以進入Windows下的命令行終端
?
Windows常用命令
在啟動Windows的終端(也稱為控制臺)之后,便可以運行命令了。如果你使用Windows作為開發平臺,如下的命令你也許會經常使用到。
命令名稱 功能描述 dir 列出當前目錄列表 cd 切換目錄(只能在根盤符(例如C盤)內切換),cd /切換到磁盤的根目錄 md 創建目錄 rd 刪除空目錄 del 刪除文件 type 顯示文本文件內容 echo 輸出文本內容 例如echo %path% 查看系統環境變量 ping 檢測網絡,例如ping baidu.com notepad 記事本 calc 計算器 mspaint 畫圖 explore 文件資源管理器 cleanmgr 磁盤清理 desk.cpl 分辨率設置 powercfg.cpl 電源設置 regedit 注冊表編輯器 msconfig 系統配置 mstsc 遠程連接 firewall.cpl 防火墻 appwiz.cpl 添加或修改程序 tasklist 查看進程列表 taskkill /f /im process-name.exe 關閉指定進程 netstat -ano|findstr "port" 查看端口占用 msinfo 系統信息 sticky notes 便簽 ipconfig 查看ip winver 查看windows版本 cls 清除屏幕內容 exit 退出終端在終端上使用命令時還有些快捷鍵,例如Tab可以補全路徑,上下鍵可以切換之前輸入的命令。*實現模糊匹配操作,例如 del *.txt就可以刪除 指定目錄的所有文本文件。
如果想要獲取更多的windows命令信息,可以在終端上輸入help回車后會顯示每個命令的名稱以及功能說明。
system函數的使用
system函數用于C程序中調用各大操作系統的命令和應用程序,被調用的命令和應用程序以字符串的方式作為system函數的參數傳入,實現讀取用戶輸入的命令,并執行該命令。
在windows上運行該程序時可以傳入notepad,calc等等實現程序調用。
而Linux和macOS上也有自己的命令可以提供給system函數來調用。
這里編寫一個交互式程序:通過借助C語言的scanf函數讀取用戶在終端的命令,然后調用system函數來執行對應的命令。
如果你的開發環境不是Windows10 1903和Visual Studio 2019,可以刪除#define _CRT_SECURE_NO_WARNINGS。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> /*使用system函數調用各大操作系統的命令 @author liuguanglei ittimelinedotnet@gmail.com@website ittimeline.net@version 2019/10/17 */ int main(int argc, char* argv[]) {// 提示用戶輸入執行的命令printf("請輸入需要執行的命令\n");//定義字符串保存用戶輸入命令char command[100] = {0};//讀取用戶從鍵盤輸入的命令字符串,并保存到command中scanf("%s",command);//執行命令system(command);system("pause");return 0; }因為system函數位于stdlib.h頭文件中,意味著它是一個可以跨平臺使用的函數。
例如在Ubuntu下使用gedit命令調用文本編輯器
?
但是各大操作系統的命令和應用程序是不相同的,例如在Windows上使用system函數傳遞字符串參數"notepad"時可以打開記事本,而移植到了類Unix上則無法調用記事本。
system函數阻止vs閃退
在Visual Studio 2019中運行程序可以通過快捷鍵F5直接運行,也可以通過點擊本地Windows調試器運行。
?
但是發現在運行helloworld后程序有閃退現象,即程序運行時打開了終端后立即退出,其原因是程序運行是printf函數默認輸出數據到終端,因此Visual Studio 2019開啟了終端,printf輸出數據完成以后,程序遇到return語句并退出,因此終端也會隨之退出,因為彈出終端和退終端的時間非常短,所有感覺有閃退現象。
為了解決這一問題,首先需要在源文件使用#include <stdlib.h>包含標準庫頭文件,然后在main函數的最后一行加上system("pause"),這樣程序運行時不會立即退出,而是等到用戶輸入任意鍵(一般習慣按回車鍵)才會退出。
解決 helloworld在Visual Studio 2019運行的閃退問題
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) {printf("Windows10 1903 & Visual Studio 2019 Hello World With C \n");system("pause");return 0; }再次運行程序時,在程序的末尾會輸出一句請按任意鍵繼續...
?
Visual Studio 2019常用快捷鍵
在日常使用Visual Studio 開發中會使用到如下常用的快捷鍵
快捷鍵名稱 功能 Ctrl+k,f 自動格式化代碼 Ctrl+k,c 注釋代碼 Ctrl+k,u 取消注釋代碼 Ctrl+F5 不調試運行 Ctrl+shift+b 編譯,不運行 F12 查看函數定義 ctrl+- 退出函數定義 F5 調試運行 F11 逐語句(遇到函數跳到函數內部逐語句執行) F10 逐過程 (不會進入函數內部,但是函數會被調用) Shift+F11 跳出Visual Studio 2019 調試程序
在后期編寫程序時,經驗不足的開發人員通常會遇到兩種錯誤:編譯錯誤和運行時錯誤,編譯錯誤通常是編寫的程序不滿足編譯器的語法規范,而運行時錯誤則是程序運行時發生的錯誤,想要排查程序運行時的錯誤,就需要使用IDE提供的調試功能。
在源文件debug.c中定義一個返回兩個整數相乘的方法mul,然后在main函數中定義兩個變量作為參數傳入mul方法中,并調用兩個整數相乘的方法,輸出計算結果
#include <stdlib.h> /*定義兩個整數相乘并返回 */ int mul(int source, int target) {//打印輸出傳入mul方法的兩個整數參數的值printf("source = %d\n",source);printf("target = %d\n", target);return source * target; } /*Visual Studio 2019的調試@author liuguanglei ittimelinedotnet@gmail.com@website ittimeline.net@version 2019/10/17 */ int main(int argc, char* argv[]) {//定義兩個變量int source = 12;int target = 12;//調用兩個整數相乘的方法,并將計算的結果保存到整數變量result中int result = mul(source, target);printf("result = %d \n",result);system("pause");return 0; }在調試程序前首先需要下斷點,可以使用快捷鍵F9下斷點或者取消斷點
?
下斷點
?
?
然后使用F5調試運行程序,程序會在之前下過斷點的地方暫停(無論是逐語句還是逐過程),此時可以在Visual Studio提供的自動窗口中觀察變量的值
?
如果想要一行一行調試代碼,可以使用快捷鍵F11,當遇到函數時(例如這里的mul函數),會進入函數的內部一行一行執行,直到該函數結束為止。
如果調試時不想進入函數的內部,可以使用快捷鍵F10,當程序中調用了其他函數時不會進入其他函數內部,但是函數會被調用。
如果調試時想要從一個斷點跳到另外一個斷點,可以使用shift+F11實現。
Visual Studio 2019的C4996錯誤
C4996是Visual Studio 2019提供的錯誤編號
首先明確下C4996錯誤出現錯誤的原因:
Visual Studio 希望用戶使用Visual Studio提供的非標準庫函數,但是程序員希望使用標準庫函數,因為標準庫是可以移植的。
如果在Visual Studio中使用標準的庫函數,就會引發C4996錯誤類似于這種提示:error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.這里的strcpy是標準的庫函數,而在Visual Studio中使用這個函數引發了C4996錯誤。
#include <stdio.h> #include <stdlib.h> #include <string.h> /*解決visual studio 2019 的C4996錯誤@author liuguanglei ittimelinedotnet@gmail.com@website ittimeline.net@version */ int main(int argc, char* argv[]) {//定義一個字符串char str[32] = "";//將hi string 復制到str中strcpy(str, "hi string");printf("str = %s \n",str);system("pause");return 0; }那么如何解決問題呢?
方案1:在源文件的第一行定義宏#define _CRT_SECURE_NO_WARNINGS
方案2:在源文件的第一行定義#pragma warning(disable:4996)
解決Visual Studio 2019的C4996錯誤的兩種方式
#define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> /*解決visual studio 2019 的C4996錯誤error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.@author liuguanglei ittimelinedotnet@gmail.com@website ittimeline.net@version */ int main(int argc, char* argv[]) {//定義一個字符串char str[32] = "";//將hi string 復制到str中strcpy(str, "hi string");printf("str = %s \n",str);system("pause");return 0; }Visual Studio 2019的代碼片段
Visual Studio 2019提供了代碼片段的功能,其作用就是配置代碼片段后,可以通過輸入指定的快捷鍵生成模板代碼,這樣可以大大提高開發效率。
在后期編寫C程序中,需要反復使用到如下的代碼片段
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> /*@author liuguanglei ittimelinedotnet@gmail.com@website ittimeline.net@version */ int main(int argc, char* argv[]) {return 0; }首先自定義代碼片段文件MyCCode.snippet
<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"><CodeSnippet Format="1.0.0"><Header><Title>MyCCodeTemplate</Title><Shortcut>mcct</Shortcut><Description>c的標準模板代碼</Description><Author>Microsoft Corporation</Author><SnippetTypes><SnippetType>Expansion</SnippetType><SnippetType>SurroundsWith</SnippetType></SnippetTypes></Header><Snippet><Code Language="cpp"><![CDATA[#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>/*@author liuguanglei ittimelinedotnet@gmail.com@website ittimeline.net@version*/int main(int argc, char *argv[]){system("pause");return 0;}]]></Code></Snippet></CodeSnippet> </CodeSnippets>然后選擇Visual Studio 2019 菜單 工具->代碼片段管理器
?
工具->代碼片段管理器
?
?
選擇代碼片段管理器的語言為C++,然后選中My Code Snippets
?
然后為導入的代碼片段選擇一個位置
?
導入成功
?
導入成功之后新建任意的C程序源文件,在源文件中輸入快捷鍵mcct就可以生成如下的代碼片段
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> /*@author liuguanglei ittimelinedotnet@gmail.com@website ittimeline.net@version */ int main(int argc, char* argv[]) {system("pause");return 0; }?
總結
以上是生活随笔為你收集整理的C语言核心技术-C语言概述与开发环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [云炬python3玩转机器学习笔记]
- 下一篇: [云炬python3玩转机器学习笔记]