linux庫引入之分文件編程

分文件編程好處
將main函數和其他功能性函數放在不同的文件中,分模塊的編程思想,分工明確,查找錯誤比較容易,責任可以劃分清楚,程序也方便調試,并且主函數比較簡潔。
將文件從同一目錄下的另一個文件夾拷貝到當前文件夾

cp ../together.c(文件名稱) .

這個代碼是沒有分文件編程的

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void initscores(int datas[],int size)
{int i;for(i=0;i<size;i++){printf("qing shu ru di%dge xue sheng de fen shu :\n",i+1);scanf("%d",&datas[i]);if(datas[i]>100||datas[i]<0){printf("input error\n");system("pause");exit(-1);}}}
void printscores(int datas[],int size)
{int i;for(i=0;i<size;i++){printf("di %dge xue sheng de cheng ji shi :%d\n",i+1,datas[i]);}
}
int findmax(int datas[],int size)
{ int i;int max;max=datas[0];for(i=0;i<size;i++){if(datas[i]>max)max=datas[i];}return max;}
int findmin(int datas[],int size)
{int i;int min;min=datas[0];for(i=0;i<size;i++){if(datas[i]<min)min=datas[i];}return min;
}
int findavagerge(int scores[],int size)
{int sum=0;int i;float avagerge;for(i=0;i<size;i++){sum+=scores[i];}avagerge=(float)sum/10;return avagerge;
}
int printret(int max,int min,float avagerge)
{printf("zui gao fen  :%d\n",max);printf("zui di  fen ?%d\n",min);printf("ping jun fen:%f\n",avagerge);
}
int main()
{int scores[10];int len;int max;int min;float avagerge;len=sizeof(scores)/sizeof(scores[1]);initscores(scores,len);printscores(scores,len);max=findmax(scores,len);min=findmin(scores,len);avagerge=findavagerge(scores,len);printret(max,min,avagerge);system("pause");return 0;
}

主函數部分代碼

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include"togetherfunc1.h"
int main()
{int scores[10];int len;int max;int min;float avagerge;len=sizeof(scores)/sizeof(scores[1]);initscores(scores,len);printscores(scores,len);max=findmax(scores,len);min=findmin(scores,len);avagerge=findavagerge(scores,len);printret(max,min,avagerge);system("pause");return 0;
}

// < >這個符號表示gcc在編譯的時候默認的在/usr/include 或 /usr/local/include 下找這些頭文件
" " 這符號表示優先從當前路徑去找(當前的文件夾),然后再從/usr/include 下去找,找不到就報錯。

功能性函數代碼

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void initscores(int datas[],int size)
{int i;for(i=0;i<size;i++){printf("qing shu ru di%dge xue sheng de fen shu :\n",i+1);scanf("%d",&datas[i]);if(datas[i]>100||datas[i]<0){printf("input error\n");system("pause");exit(-1);}}}
void printscores(int datas[],int size)
{int i;for(i=0;i<size;i++){printf("di %dge xue sheng de cheng ji shi :%d\n",i+1,datas[i]);}
}
int findmax(int datas[],int size)
{int i;int max;max=datas[0];for(i=0;i<size;i++){if(datas[i]>max)max=datas[i];}return max;}
int findmin(int datas[],int size)
{int i;int min;min=datas[0];for(i=0;i<size;i++){if(datas[i]<min)min=datas[i];}return min;
}
int findavagerge(int scores[],int size)
{int sum=0;int i;float avagerge;for(i=0;i<size;i++){sum+=scores[i];}avagerge=(float)sum/10;return avagerge;
}
int printret(int max,int min,float avagerge)
{printf("zui gao fen  :%d\n",max);printf("zui di  fen ?%d\n",min);printf("ping jun fen:%f\n",avagerge);
}

.h 文件代碼

void initscores(int datas[],int size);
void printscores(int datas[],int size);
int findmax(int datas[],int size);
int findmin(int datas[],int size);
int findavagerge(int scores[],int size);
int printret(int max,int min,float avagerge);

//.h 是將函數名拿來裝在這個文件中的。

如何編譯

gcc togetherfunc1.c togetherfunc.c
//這兩個文件順序可以調換

在/usr/include下查找文件

ls /usr/include
ls /usr/include |grep stdio(要查找的文件)
|  表示管道  過濾查找自己想要的文件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272462.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272462.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272462.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

為什么Chrome瀏覽器特愛吃內存

微軟用慣用的手法——改名——給 IE 被黑的一生畫上了句號。還好&#xff0c;它在技術段子圈里早就有了接班人&#xff1a;Chrome。Chrome 很好很強大&#xff0c;速度極快、功能很多。但同時它也是你的電腦內存不足或者耗電太快的罪魁禍首。沒辦法&#xff0c;Chrome 太愛吃內…

nyoj--120--校園網絡(scc+縮點)

校園網絡 時間限制&#xff1a;3000 ms | 內存限制&#xff1a;65535 KB難度&#xff1a;5描述南陽理工學院共有M個系&#xff0c;分別編號1~M,其中各個系之間達成有一定的協議&#xff0c;如果某系有新軟件可用時&#xff0c;該系將允許一些其它的系復制并使用該軟件。但該允…

SQL的四種連接用法整理

1、內聯接&#xff08;典型的聯接運算&#xff0c;使用像 或 <> 之類的比較運算符&#xff09;。包括相等聯接和自然聯接。 內聯接使用比較運算符根據每個表共有的列的值匹配兩個表中的行。例如&#xff0c;檢索 students和courses表中學生標識號相同的所有行。 …

簡述 OAuth 2.0 的運作流程

本文將以用戶使用 github 登錄網站留言為例&#xff0c;簡述 OAuth 2.0 的運作流程。 假如我有一個網站&#xff0c;你是我網站上的訪客&#xff0c;看了文章想留言表示「朕已閱」&#xff0c;留言時發現有這個網站的帳號才能夠留言&#xff0c;此時給了你兩個選擇&#xff1a;…

linux庫引入之動態庫靜態庫(生成和使用)

庫&#xff1a; 庫是一種可執行代碼的二進制形式&#xff0c;可以被操作系統載入內存執行。就是將源代碼轉化為二進制格式的源代碼&#xff0c;相當于進行了加密&#xff0c;別人可以使用庫&#xff0c;但是看不到庫中的內容。 如何使用 用戶需要同時具有頭文件和庫。 頭文件…

InstallShield limited edition 生成單個 setup.exe 安裝文件

InstallShield limited edition 生成單個 setup.exe 安裝文件 1.vs里選中當前Setup項目, 2.在vs工具欄中"配置管理器"的下拉列表里,把"Debug"改為"SingleImage" 3.重新編譯 posted on 2016-01-14 09:45 NET未來之路 閱讀(...) 評論(...) 編輯 收…

ASP.NET中高級程序員 面試題

第一部分&#xff1a;互相介紹及了解1.請介紹一下你自己?包括工作經歷和項目經歷&#xff1f;2.請談一下你就最近的一個項目&#xff1f;你在其中的職責和負責的部分?第二部分&#xff1a;一、ASP.NET技術問題選擇性提問。一般可以選擇三五個。1. 簡要說一下.Net的編譯過程.2…

gettimeofday函數

定義&#xff1a; gettimeofday是計算機函數&#xff0c;使用C語言編寫程序需要獲得當前精確時間&#xff08;1970年1月1日到現在的時間&#xff09;&#xff0c;或者為執行計時&#xff0c;可以使用gettimeofday()函數。 使用方法&#xff1a; #include <sys/time.h> i…

SQL Server數據庫設置自動備份策略

一. 簡單介紹SQL Server自帶的維護計劃是一個非常有用的維護工具&#xff0c;能夠完成大部分的數據庫的維護任務.數據庫的備份也是日常工作中非常重要的一個環節。備份的方法非常的多.今天給大家介紹最簡單的一種方法: 直接通過SQL Server Management Studio的圖形界面去設置備…

C3P0在多線程下的maxPoolSize配置

ETL工具完畢的差點兒相同了。今天遇到一個問題。就是給C3P0配置了maxPoolSize為10。目的是想讓整個應用同一時候獲得的最大的Connection個數為10&#xff0c;可是在測試應用的這一部分之后&#xff0c;發現PostgreSQL端的鏈接遠遠超過10個。由于工具是多線程的。所以就想&#…

樹莓派外設開發編程

樹莓派外設開發接口文檔參考 wiringPi&#xff08;特定平臺&#xff0c;特定功能接口&#xff09; 庫&#xff08;linux 動態庫 靜態庫&#xff09; gcc demo1.c -lwiringPi //編譯時要加-lwiringPigpio -v //查看是否安裝wiringPi庫 gpio version: 2.50 Copyright (c) 2012-2…

Bootstrap 5款常用模板

篇文章中&#xff0c;我們已經編制了5款最好的 Bootstrap 4.0 主題模板清單&#xff0c;讓您可以用在下一個項目中&#xff0c;我們希望你能找到有用的。這些主題包含了所有必要的 HTML 和 CSS 為基礎的設計模板的版式&#xff0c;表單&#xff0c;按鈕&#xff0c;導航和其它界…

工作內外網同時連接方案

需求 工作的時候需要用到外網查詢資料&#xff0c;又需要用內網完成工作任務。不想來回切換網絡。 前提 外網使用無線&#xff0c;內網使用水晶頭接口。 方案 1.插入水晶頭接口&#xff08;效果是連接內網&#xff09;。 2.進入 → “控制面板\網絡和 Internet\網絡和共享中心”…

三種常用圖片格式的使用場景

GIF&#xff1a;1&#xff1a;256色2&#xff1a; 無損&#xff0c;編輯 保存時候&#xff0c;不會損失。3&#xff1a;支持簡單動畫。4&#xff1a;支持boolean透明&#xff0c;也就是要么完全透明&#xff0c;要么不透明JPEG&#xff1a;1&#xff1a;millions of colors2&am…

交叉編譯及樹莓派(或其他平臺)交叉編譯工具鏈的安裝

交叉編譯是什么&#xff1a; 交叉編譯是一個行為&#xff0c;是在一個平臺上生成另一個平臺上的可執行代碼。 比如&#xff1a;我們在windows上面編寫C51的代碼&#xff0c;并編譯成可執行代碼&#xff0c;如xx.hex,是在C51上面運行不是在windows上面運行。 同樣&#xff1a;我…

Delphi:ADOConnection連接SQLServer自動斷網問題解決

解決方法一&#xff1a;異常時關閉連接&#xff0c;WinXP&#xff0c;win7 32位大部分情況都是起作用的&#xff0c;不過在有些windows操作系統下&#xff08;如家庭版&#xff09;不起作用&#xff0c;不知為何&#xff1f; try //執行sql操作 except AdoConnection.close;//…

走近北京后廠村程序員的真實生活

來源&#xff1a;中新經緯北京的西北角是個特別的區域&#xff0c;這里匯集了眾多互聯網及IT企業&#xff0c;實力雄厚的上市公司將自家 logo 懸掛在大廈的頂端&#xff0c;而剛起步的創業公司也會選擇在這里租下一畝三分地。中關村、上地、西二旗、后廠村……它們成為了一個個…

帶wiringPi庫的交叉編譯

WiringPi的下載——網盤提取 鏈接&#xff1a;https://pan.baidu.com/s/1cPIt-xZLye1DAQjq2yKzeg 提取碼&#xff1a;35vt &#xff08;這個庫不是很好&#xff0c;鏈接的庫的格式不對&#xff0c;是宿主機的平臺&#xff0c;需要自己將樹莓派的wiringpi庫&#xff08;libwiri…

lintcode:最小編輯距離

最小編輯距離 給出兩個單詞word1和word2&#xff0c;計算出將word1 轉換為word2的最少操作次數。 你總共三種操作方法&#xff1a; 插入一個字符刪除一個字符替換一個字符樣例 給出 work1"mart" 和 work2"karma" 返回 3 解題 動態規劃解題 定義矩陣dp[][]…

這些代碼優化的方法,你都用過嗎?

來自&#xff1a;www.cnblogs.com/xrq730/代碼優化的最重要的作用應該是&#xff1a;避免未知的錯誤在代碼上線運行的過程中&#xff0c;往往會出現很多我們意想不到的錯誤&#xff0c;因為線上環境和開發環境是非常不同的&#xff0c;錯誤定位到最后往往是一個非常小的原因。然…