程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C程序中引用自定義的C函數模塊,函數模塊

C程序中引用自定義的C函數模塊,函數模塊

編輯:關於C語言

C程序中引用自定義的C函數模塊,函數模塊


  我們知道,剛開始接觸C語言編程,一般都是在一個.c或者.cpp(以下只說.c)的文件中編寫代碼,其中一定會有一個入口函數,

也就是main()函數,你可以將程序代碼全部寫在main函數裡,當然如果你想要程序更加模塊化,也可以將一些操作寫在一個函數

裡,這些函數的聲明和定義也都是在main函數中。

  想想,隨著你的代碼量越來越大,實現的功能越來越多,在一個.c文件中,你定義了許許多多的函數,這些函數實現著不同功能,

並且都是混雜在一起,你會不會感覺看著自己寫的代碼感覺自己的腦子也亂了?在這裡我找到了一個方法來將程序變得更加模塊化,

更加有條理。總的做法分以下幾步:

1.將功能相近的自定義函數的聲明寫在一個.h文件中(比如:Math.h)

2.將這些函數的具體實現寫在.c文件中(比如:Math.c  注意要包含頭文件  #include "Math.h" )

3.在你的主程序(支持.c文件格式)中包含頭文件(#include "Math.h"),在主程序就可以調用這些自定義函數了

 

  我們現在想要C函數模塊,該模塊提供數學計算的功能(例如加、減、乘、除等計算功能),自定義函數寫在Math.h中,函數的

實現寫在Math.c中,在主函數main.c中調用這些函數進行測試。

一、編寫Math.h文件

 1 #ifndef _MATH_H
 2 #define _MATH_H
 3 
 4 #include <stdio.h>
 5 
 6 /*
 7   自定義函數的聲明
 8 */
 9 //加
10 int Add(int a,in b);
11 //減
12 int Sub(int a,int b);
13 //乘
14 int Multi(int a,int b);
15 //除
16 double Dev(int a,int b);
17 // ... 
18 #endif

 

二、編寫Math.c文件

 1 #include <stdio.h>
 2 #include "Math.h"   //必須添加!!!
 3 
 4 int Add(int a,int b)
 5 {
 6    return a+b;
 7 }
 8 
 9 int Sub(int a,int b)
10 {
11    return a-b;
12 }
13 
14 int Multi(int a,int b)
15 {
16    return a*b;
17 }
18 
19 double Dev(int a,int b)
20 {
21    if(b==0)
22    {
23        printf("\n除數不能為0.");
24        return 0.0;
25    }
26    return (double)a/b;
27 }

 

三、測試:main.c(支持.c文件格式)調用模塊中的函數

 1 #include <stdio.h>
 2 #include <conio.h>
 3 #include "Math.h"  //添加自定義函數的頭文件
 4 
 5 void main()
 6 {
 7   int a=15,b=10;
 8 
 9   //調用自定義函數
10   printf("a+b=%d\n", Add(a,b) );   
11   printf("a-b=%d\n", Sub(a,b) );
12   printf("a*b=%d\n", Multi(a,b) );
13   printf("a/b=%f\n", Dev(a,b) );
14 
15   getch();
16   return;
17 }

注意:在VC6.0中添加主程序代碼時需要添加.c格式的(main.c),添加.cpp格式的(main.cpp)會報錯,

         具體原因還不知道,希望知道的可以告知!

程序運行的結果:

 

附:以上的內容為本人從《C語言科學與藝術》一書中的學習的總結,供大家學習和分享。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved