以往寫(xiě)C語(yǔ)言程序都是一個(gè)文件里面寫(xiě)個(gè)幾十、幾百行,在練算法的時(shí)候還可以,現(xiàn)在搞開(kāi)發(fā)需要模塊化編程,所謂模塊化編程,就是指一個(gè)程序包含多個(gè)源文件(.c 文件和 .h 文件),每個(gè) .c 文件可以被稱為一個(gè)模塊。
1、例程的文件結(jié)構(gòu)
2、各文件代碼main.c 源碼:
#include
{
intn1 = 1, n2 = 10;
printf("從%d加到%d的和為%ld\n", n1, n2, sum(n1, n2));
printf("從%d乘到%d的積為%ld\n", n1, n2, mult(n1, n2));
printf("OS:%s\n",OS);
printf("Power By %s(%s)", getWebName(), getWebURL());
return0;
}
math.c 源碼:
// 沒(méi)有使用到 func.h 中的函數(shù)聲明或宏定義,也可以不包含進(jìn)來(lái)
#include "../include/func.h"
// 從 fromNum 加到 endNumlongsum(intfromNum, intendNum)
{
inti;
longresult = 0;
// 參數(shù)不符合規(guī)則,返回 -1
if(fromNum<0?|| endNum<0?|| endNum
{
return-1;
}
for(i=fromNum; i<=endNum; i++)
{
result += i;
}
// 返回大于等于0的值
returnresult;
}
// 從 fromNum 乘到 endNumlongmult(intfromNum, intendNum)
{
inti;
longresult = 1;
// 參數(shù)不符合規(guī)則,返回 -1
if(fromNum<0?|| endNum<0?|| endNum
{
return-1;
}
for(i=fromNum; i<=endNum; i++)
{
result *= i;
}
// 返回大于等于0的值
returnresult;
}
web.c 源碼:
// 使用到了 func.h 中的宏定義,必須包含進(jìn)來(lái),否則編譯錯(cuò)誤
#include "../include/func.h"char* getWebName()
{
returnWEB_NAME;
}char* getWebURL()
{
returnWEB_URL;
}
func.h 源碼:
#ifndef _FUNC_H
#define _FUNC_H
// 用宏定義來(lái)代替全局變量
#define OS "Linux"
#define WEB_URL "http://www.baidu.com"
#define WEB_NAME "百度"
// 也可以省略 extern,不過(guò)為了程序可讀性,建議都寫(xiě)上
externlongsum(int, int);
externlongmult(int, int);
externchar* getWebName();
externchar* getWebURL();
#endif
運(yùn)行結(jié)果:
從1加到10的和為55從1乘到10的積為3628800OS:Linux
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7632瀏覽量
141736 -
源文件
+關(guān)注
關(guān)注
0文章
30瀏覽量
4785
原文標(biāo)題:通俗易懂!Linux C模塊化編程實(shí)例講解
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)
深入理解C語(yǔ)言:C語(yǔ)言循環(huán)控制

如何在 樹(shù)莓派 上編寫(xiě)和運(yùn)行 C 語(yǔ)言程序?

全套C語(yǔ)言培訓(xùn)資料—PPT課件
分析C語(yǔ)言代碼結(jié)構(gòu)的設(shè)計(jì)問(wèn)題
深入理解C語(yǔ)言:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

AWTK-WEB 快速入門(mén)(1) - C 語(yǔ)言應(yīng)用程序

技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:掌握C語(yǔ)言條件判斷,從if到switch的應(yīng)用

C語(yǔ)言和C++中結(jié)構(gòu)體的區(qū)別
單片機(jī)hex文件反編譯成C語(yǔ)言的過(guò)程
hex文件怎么能轉(zhuǎn)回去c語(yǔ)言
hex文件如何查看原c語(yǔ)言代碼
可重復(fù)頭文件的固定結(jié)構(gòu)

技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:掌握程序結(jié)構(gòu)知識(shí)

評(píng)論