0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言程序例程的文件結(jié)構(gòu)

Q4MP_gh_c472c21 ? 來(lái)源:未知 ? 作者:龔婷 ? 2018-03-14 10:32 ? 次閱讀

以往寫(xiě)C語(yǔ)言程序都是一個(gè)文件里面寫(xiě)個(gè)幾十、幾百行,在練算法的時(shí)候還可以,現(xiàn)在搞開(kāi)發(fā)需要模塊化編程,所謂模塊化編程,就是指一個(gè)程序包含多個(gè)源文件(.c 文件和 .h 文件),每個(gè) .c 文件可以被稱(chēng)為一個(gè)模塊。

1、例程的文件結(jié)構(gòu)

2、各文件代碼main.c 源碼:

#include #include "include/func.h"intmain()

{

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7605

    瀏覽量

    136934
  • 源文件
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    4596

原文標(biāo)題:通俗易懂!Linux C模塊化編程實(shí)例講解

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深入理解C語(yǔ)言:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    程序設(shè)計(jì)中,我們常常需要重復(fù)執(zhí)行某一段代碼。為了提高效率和簡(jiǎn)化代碼,循環(huán)語(yǔ)句應(yīng)運(yùn)而生。C語(yǔ)言作為一門(mén)經(jīng)典的編程語(yǔ)言,提供了多種循環(huán)控制結(jié)構(gòu)
    的頭像 發(fā)表于 12-07 01:11 ?168次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

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

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開(kāi)發(fā)各種平臺(tái)的應(yīng)用程序。有時(shí)我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用C語(yǔ)言開(kāi)發(fā)AWTK-WEB應(yīng)用程序。用AWTKDesigner新建
    的頭像 發(fā)表于 11-27 11:46 ?215次閱讀
    AWTK-WEB 快速入門(mén)(1) - <b class='flag-5'>C</b> <b class='flag-5'>語(yǔ)言</b>應(yīng)用<b class='flag-5'>程序</b>

    C語(yǔ)言C++中結(jié)構(gòu)體的區(qū)別

    同樣是結(jié)構(gòu)體,看看在C語(yǔ)言C++中有什么區(qū)別?
    的頭像 發(fā)表于 10-30 15:11 ?245次閱讀

    單片機(jī)hex文件反編譯成C語(yǔ)言的過(guò)程

    使用C語(yǔ)言編寫(xiě),然后編譯成機(jī)器碼并燒錄到單片機(jī)的存儲(chǔ)器中。 Hex文件是一種用于存儲(chǔ)單片機(jī)程序文件格式,它包含了
    的頭像 發(fā)表于 09-02 10:49 ?3333次閱讀

    hex文件怎么能轉(zhuǎn)回去c語(yǔ)言

    將 .hex 文件直接“轉(zhuǎn)回去”為原始的C語(yǔ)言代碼是不可能的,因?yàn)?.hex 文件是編譯后的二進(jìn)制文件,它包含了機(jī)器碼,這些機(jī)器碼是處理器可
    的頭像 發(fā)表于 09-02 10:46 ?2256次閱讀

    hex文件如何查看原c語(yǔ)言代碼

    直接將 .hex 文件轉(zhuǎn)換回原始的 C 語(yǔ)言代碼是不可能的,因?yàn)?.hex 文件是二進(jìn)制文件,它包含了單片機(jī)
    的頭像 發(fā)表于 09-02 10:37 ?2387次閱讀

    可重復(fù)頭文件的固定結(jié)構(gòu)

    年輕人,你可曾記得,在修習(xí)C語(yǔ)言的時(shí)候,見(jiàn)過(guò)這樣的字句:在創(chuàng)建頭文件的時(shí)候,一定要加入保護(hù)宏。
    的頭像 發(fā)表于 08-29 10:23 ?356次閱讀
    可重復(fù)頭<b class='flag-5'>文件</b>的固定<b class='flag-5'>結(jié)構(gòu)</b>

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

    在計(jì)算機(jī)編程的世界中,C語(yǔ)言被廣泛認(rèn)可為一門(mén)強(qiáng)大而高效的編程語(yǔ)言,其簡(jiǎn)潔的語(yǔ)法和直接的指令使得它成為了許多程序員的首選。了解C
    的頭像 發(fā)表于 07-27 08:45 ?1412次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:掌握<b class='flag-5'>程序結(jié)構(gòu)</b>知識(shí)

    嵌入式中C語(yǔ)言結(jié)構(gòu)體基本實(shí)現(xiàn)

    C語(yǔ)言中的數(shù)組只能允許程序員定義存儲(chǔ)相同類(lèi)型數(shù)據(jù)。但是結(jié)構(gòu)C語(yǔ)言編程中允許您存儲(chǔ)不同數(shù)據(jù)類(lèi)型的
    的頭像 發(fā)表于 05-11 08:49 ?1051次閱讀
    嵌入式中<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>結(jié)構(gòu)</b>體基本實(shí)現(xiàn)

    嵌入式系統(tǒng)中C語(yǔ)言結(jié)構(gòu)體的基礎(chǔ)實(shí)現(xiàn)與應(yīng)用

    C語(yǔ)言中的數(shù)組只能允許程序員定義存儲(chǔ)相同類(lèi)型數(shù)據(jù)。但是結(jié)構(gòu)C語(yǔ)言編程中允許您存儲(chǔ)不同數(shù)據(jù)類(lèi)型的
    發(fā)表于 03-12 14:29 ?506次閱讀
    嵌入式系統(tǒng)中<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>結(jié)構(gòu)</b>體的基礎(chǔ)實(shí)現(xiàn)與應(yīng)用

    C語(yǔ)言#define的應(yīng)用

    C/C++ 編程語(yǔ)言中,當(dāng)程序被編譯時(shí),被發(fā)送到編譯器,編譯器將程序轉(zhuǎn)換為機(jī)器語(yǔ)言,然后完成
    發(fā)表于 03-06 11:29 ?385次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>#define的應(yīng)用

    C語(yǔ)言中的頭文件

    #include 指令會(huì)指示 C 預(yù)處理器瀏覽指定的文件作為輸入。預(yù)處理器的輸出包含了已經(jīng)生成的輸出,被引用文件生成的輸出以及 #include 指令之后的文本輸出。
    發(fā)表于 02-23 14:06 ?465次閱讀

    支持CiA402驅(qū)動(dòng)器配置文件的示例程序用于通過(guò)EtherCAT?通信進(jìn)行電機(jī)控制

    電子發(fā)燒友網(wǎng)站提供《支持CiA402驅(qū)動(dòng)器配置文件的示例程序用于通過(guò)EtherCAT?通信進(jìn)行電機(jī)控制.pdf》資料免費(fèi)下載
    發(fā)表于 02-21 14:21 ?2次下載
    支持CiA402驅(qū)動(dòng)器配置<b class='flag-5'>文件</b>的示<b class='flag-5'>例程序</b>用于通過(guò)EtherCAT?通信進(jìn)行電機(jī)控制

    plc編程語(yǔ)言c語(yǔ)言的聯(lián)系 c語(yǔ)言和PLC有什么區(qū)別

    語(yǔ)言,主要用于開(kāi)發(fā)各種應(yīng)用程序。盡管PLC編程語(yǔ)言C語(yǔ)言有一些相似之處,但它們之間也存在一些明顯的區(qū)別。 首先,PLC編程
    的頭像 發(fā)表于 02-05 14:21 ?4165次閱讀

    怎么寫(xiě)出效率高、思路清晰的C語(yǔ)言程序?

    要用C語(yǔ)言的思維方式來(lái)進(jìn)行程序的構(gòu)架構(gòu)建 要有良好的C語(yǔ)言算法基礎(chǔ),以此來(lái)實(shí)現(xiàn)程序的邏輯構(gòu)架
    的頭像 發(fā)表于 01-02 14:20 ?577次閱讀