一、任務
在Ubuntu系統下請編寫一個主程序文件 main1.c 和一個子程序文件 sub1.c, 要求:子程序sub1.c 包含一個算術運算函數 float x2x(int a,int b),此函數功能為對兩個輸入整型參數做某個運算,將結果做浮點數返回;主程序main1.c,定義並賦值兩整型變量,然后調用函數 x2x,將x2x的返回結果printf出來。
- 請在ubuntu系統用gcc 命令行方式編譯主程序main1.c 並運行;
- 請在windows系統下用你熟悉的編譯工具編譯主程序main1.c 並運行。
- 在任務1基礎上,在ubuntu系統下用Makefile方式編程主程序。
二、實踐
- 任務一:創建main1.c、stu1.c文件,並編寫代碼
//main1.c #inlcude<stdio.h> # include "stu1.c" int main ( ) { printf ( "%f" , x2x ( 3 , 5 ) ) ; return 0 ; } //stu1.c float x2x ( int a , int b ) { float c ; c = a + b ; return c ; }
root@rick : ~ # mkdir test1 //創建一個工作目錄 root@rick : ~ # cd test1 root@rick : ~ / test1# touch main1 . c //新建兩個.c文件 root@rick : ~ / test1# touch sut1 . c root@rick : ~ / test1# gedit stu1 . c //利用gedit編輯器編寫程序 root@rick : ~ / test1# gedit main1 . c root@rick : ~ / test1# gcc main1 . c - o main1 //編譯程序並生成可執行文件main1 root@rick : ~ / test1# ls main1 main1 . c stu1 . c root@rick : ~ / test1# . / main1 //運行可執行程序main1 8.000000 //結果
-
任務二
-
任務三
前面步驟同任務一,Makefile的編寫如下:
root@rick : ~ / test# touch Makefile root@rick : ~ / test# gedit Makefile //Makefile main1 : main1 . o sub1 . o gcc - o main1 main1 . o sub1 . o main1 . o : main1 . c gcc - c main1 . c sub1 . o : sub1 . c gcc - c sub1 . c root@rick : ~ / test# make gcc - c sub1 . c gcc - o main1 main1 . o sub1 . o root@rick : ~ / test# ls main1 main1 . c main1 . o Makefile sub1 . c sub1 . o root@rick : ~ / test# . / main1 8.000000
三、小結
通過三個任務的實踐,我對編程的底層有了更深刻的了解,編寫程序的四個步驟,預處理->編譯->鏈接->運行。其中,雅思和托福區別在ubuntu系統下利用Makefile(自動化編譯C語言程序的腳本工具)使得執行命令更加高效、便捷。
四、補充:
1)修改系統參數,選擇國內鏡像軟件源倉庫,以提高軟件安裝速度。見鏈接: ubuntu更改鏡像源
2)ubuntu18.04系統桌面很卡怎么辦,見鏈接: 解決ubuntu18.04桌面卡的問題
3)ubuntu安裝anaconda見鏈接: Ubuntu18.04 安裝 Anaconda3
4)windows通過xftp、xshell連接ubuntu,見鏈接: 使用xshell連接ubuntu