Standard C Episode 8

C語言函數和程序結構
通過函數可以把大的計算任務分解成若干個較小任務,從而使得思路更加清晰,同時函數也大大提高了代碼的復用率,提高了工作效率。要注意的是多函數之間應該盡可能地高聚合低耦合。另一方面,一個程序可以保存在一個或者多個源文件中。各個文件可以單獨編譯。

注意:一般地,頭文件中不會放那些在程序運行時發生具體效應的語句。例如聲明(定義)一個變量的語句是不會放在頭文件中的。再例如結構體聲明(定義)語句就可以放頭文件里,但結構體變量聲明(定義)語句是不會放在頭文件中的。

make工具可以用來進行項目管理。他可以根據記錄在Makefile文件中的要求完成整個編譯過程。實際項目中Makefile文件內容復雜,往往還有可以制作Makefile文件的工具。
linux開源軟件經典的軟件安裝步驟是直接從軟件源程序開始的,步驟:
(1)make
(2)make install
(3)make clean

?

1 /*
2 Filename:add.h
3  */
4 #ifndef __ADD_H__
5 #define __ADD_H__
6 void add(int, int);
7 #endif  //__ADD_H__
1 /*
2 Filename: add.c
3  */
4 #include "add.h"
5 int result;
6 void add(int a , int b)
7 {
8     result = a + b;
9 }
1 /*
2 Filename: sub.h
3  */
4 #if !defined(__SUB_H__)
5 #define __SUB_H__
6 int sub(int, int);
7 #endif  //__SUB_H__
1 /*Filename: sub.c
2  */
3 #include "sub.h"
4 int sub(int a, int b)
5 {
6     return a - b;
7 }

?

 1 /*
 2 Filename: main.c
 3  */
 4 
 5 #include "add.h"
 6 #include "sub.h"
 7 
 8 #include <stdio.h>
 9 extern int result;//?聲明result

10 int main() 11 { 12 add(10, 10); 13 printf("%d + %d = %d \n", 10, 10, result); 14 printf("%d - %d = %d \n", 10, 10, sub(10, 10)); 15 16 return 0; 17 }

?

Makefile

 1 a.out : add.o   sub.o main.c
 2     gcc -c main.c
 3     gcc sub.o add.o main.o
 4 add.o:add.c
 5 
 6     gcc -c add.c
 7 
 8 sub.o:sub.c
 9     gcc -c sub.c
10 clean:
11     rm *.o a.out

?

轉載于:https://www.cnblogs.com/libig/p/4738229.html

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

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

相關文章

C# Socket 編程詳解

Microsoft.Net Framework為應用程序訪問Internet提供了分層的、可擴展的以及受管轄的網絡服務&#xff0c;其名字空間System.Net和 System.Net.Sockets包含豐富的類可以開發多種網絡應用程序。.Net類采用的分層結構允許應用程序在不同的控制級別上訪問網絡&#xff0c;開發人員…

java 線程池 wait,Java 多線程 之 wait等待 線程實例

package com.wait.notify;/**題目: 人們在火車站的售票窗口排隊買火車票1. 北京西站開門2. 打開售票窗口3. 北京西站有10張去長沙的票4. 打開2個售票窗口,5 假設每個售票窗口每隔1秒鐘買完一張票1. 根據 名詞 找類人們(Person), 火車站(Station),火車票(Ticket) , 售票窗口e 是…

002 exercises

求列表全排列lst [1,2,3] l1 [(x,y,z) for x in lst for y in lst for z in lst if x ! y if y ! z if x ! z] print(l1)給定一個非負整數num,重復的加每一位,直到最后只剩下一位例如: num 38,計算過程如下:3 8 111 1 2最后輸出結果為2#遞歸 def add(num):if len(str(num…

(線段樹 點更新 區間求和)lightoj1112

鏈接&#xff1a; http://acm.hust.edu.cn/vjudge/contest/view.action?cid88230#problem/D &#xff08;密碼0817&#xff09; Description Robin Hood likes to loot rich people since he helps the poor people with this money. Instead of keeping all the money togeth…

TCP/ip通信模式

TCP/IP 應用層與應用程序*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** 文檔出處&#xff1a;http://blog.csdn.net/bingxx11/article…

PHP中判斷空的方法,php中類型判斷和NULL,空值檢查的方法

在一些接口和數據庫的設計中。數據庫的非必填字段可能為null或者為空。這個時候接口前端javascript去判斷的時候就會比較麻煩。為了便于統一的判斷。一律把null和 空裝換成 空.這樣前端的判斷就變得簡潔 if(aa ){........}建議使用 或者 來判斷。。以下是我簡短的一個把數據…

8 Regular Expressions You Should Know

2019獨角獸企業重金招聘Python工程師標準>>> Regular expressions are a language of their own. When you learn a new programming language, theyre this little sub-language that makes no sense at first glance. Many times you have to read another tutori…

poj 3278 catch that cow BFS(基礎水)

Catch That CowTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 61826 Accepted: 19329Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a num…

制作已編譯的html幫助文件

http://www.cnblogs.com/cm186man/archive/2008/03/10/1098896.html引用 HTML幫助文檔從結構上來看可分為兩個部分&#xff0c;運行器和文檔內容。它的一個好處是能使幫助文檔跨平臺運行&#xff0c;只要有不同平臺上的運行器和瀏覽器&#xff0c;幫助文檔不再需要重新編制&…

matlab %3c handle,volume browser (updated).htm 源代碼在線查看 - Matlab顯式三維地震數據的源代碼 資源下載 蟲蟲電子下載站...

Comments: any comments on this error:??? Error using > timesIntegers can only be combined with integers of the same class, or scalar doubles.Error in > interp3>linear at 368 F (( arg4(ndx).*(1-t) arg4(ndx1).*t ).*(1-s) ...Error in > inter…

PHPer轉戰Android的學習過程以及Android學習

原文作者&#xff1a; eoeadmin原文地址&#xff1a; http://my.eoe.cn/shuhai/archive/19684.html--------------------------------------------這篇文章主要寫了一個PHP程序猿是如何轉戰學習Android的。 第一步&#xff1a;直接跨過java的學習&#xff0c;原因有我之前看過畢…

SQL中實現截取字符串的函數

SQL中實現截取字符串的函數 如果想實現從數據庫中取數據時截取一個字段下的內容或者截取一串字符串&#xff0c;則能夠實現這種效果的函數有Left&#xff0c;Right&#xff0c;SubString三個函數。1.Left函數&#xff1a;Left&#xff08;character_expression , integer_expre…

php時區設置問題,PHP 的時區設置問題_PHP教程

裝上PHP5后你會發現這樣的問題&#xff1a;你也許會發現&#xff0c;輸出的時間和你現在的時間是不相同的。原因是假如你不在程序或配置文件中設置你的服務器當地時區的話&#xff0c;PHP所取的時間是格林威治標準時間&#xff0c;所以和你當地的時間會有出入。格林威治標準時間…

HDU 5392 BC #51

就是求最大公倍數&#xff0c;但要用分解質因子求。 自己寫的WA到爆。。。。 #include<iostream> #include<stdio.h> #include<math.h>#include<algorithm>using namespace std;#define rd(x) scanf("%d",&x) #define rd2(x,y) scanf(&q…

下拉框——把一個select框中選中內容移到另一個select框中遇到的問題

在使用jQuery實現把一個select框中選中內容移到另一個select框中功能時遇到了一個問題&#xff0c;就是點擊按鈕時內容可以到另一個select框中&#xff0c;但是到了另一個select框中的內容卻很快閃退回原來的select框中&#xff0c;代碼如下&#xff1a; <select class"…

windows API 串口編程參考

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** &#xff08;一&#xff09;Windows API串口通信編程概述 Windows環境下的串口編程與D…

jquery post php返回html,jquery ajax post 提交數據,返回的是當前網頁的html?

代碼如下用戶名:密 碼:$("#login_submit").bind("click",function(){var type "post";var url "index.php?madmin&cindex&acheckLogin";var formArrays $("#admin_form").serializeArray();var requestData …

[轉]Android Studio系列教程六--Gradle多渠道打包

轉自&#xff1a;http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Gradle多渠道打包 2015 年 01 月 15 日 devtools本文為個人原創&#xff0c;歡迎轉載&#xff0c;但請務必在明顯位置注明出處&#xff01; 由于國內Andr…

服務器上裝filezilla server后,本地的ftp客戶端連接不上去

公司一臺服務器&#xff0c;上面裝了filezilla server后&#xff0c;按平常配置好了&#xff0c;但是在本地用FTP客戶端不管怎么連接都連接不上&#xff0c;本地FTP客戶端總提示連接失敗&#xff0c;遠程filezilla server的界面也沒有提示有人連接&#xff0c; 仔細看了一下&am…

數據結構與算法之堆與堆排序

在數據結構中&#xff0c;堆其實就是一棵完全二叉樹。我們知道內存中也有一塊叫做堆的存儲區域&#xff0c;但是這與數據結構中的堆是完全不同的概念。在數據結構中&#xff0c;堆分為大根堆和小根堆&#xff0c;大根堆就是根結點的關鍵字大于等于任一個子節點的關鍵字&#xf…