C語言引用不同路徑下的頭文件的方法


C語言學習筆記,備查:

 

希望在一個A.c文件中引用另一個B.c文件的方法,可以將B.c文件中的方法提取至B.h頭文件,然后在B.c和A.c中分別用#include "XXX/B.h"引用。其中XXX/B.h可以是絕對路徑也可以是相對路徑。

舉例:

FindPrime.c文件中,有個isPrime方法用於判斷是否為素數,希望在Factorization.c文件中引用:

FindPrime.c代碼如下:

 1 #include <stdio.h>
 2 
 3 int isPrime(int i);
 4 void printFactorization(int number);
 5 
 6 void findPrime(int begin, int end) {
 7   if (begin > end) {
 8     int temp = begin;
 9     begin = end;
10     end = temp;
11   }
12   for (int i = begin; i <= end; i++) {
13     if (isPrime(i)) {
14       printf("%d\n", i);
15     }
16   }
17 }
18 
19 int isPrime(int i) {
20   for (int j = 2; j < i; j++) {
21     if (i % j == 0) {
22       return 0;
23     }
24   }
25   return 1;
26 }
27 
28 int main() {
29   findPrime(101, 200);
30 }

先將main方法之外的方法提取到頭文件FindPrime.h中:

FindPrime.h代碼如下:

 1 int isPrime(int i);
 2 void printFactorization(int number);
 3 
 4 void findPrime(int begin, int end) {
 5   if (begin > end) {
 6     int temp = begin;
 7     begin = end;
 8     end = temp;
 9   }
10   for (int i = begin; i <= end; i++) {
11     if (isPrime(i)) {
12       printf("%d\n", i);
13     }
14   }
15 }
16 
17 int isPrime(int i) {
18   for (int j = 2; j < i; j++) {
19     if (i % j == 0) {
20       return 0;
21     }
22   }
23   return 1;
24 }

然后在FindPrime.c中使用預處理指令引用如下(FindPrime.c和FindPrime.h在同一個文件夾):

1 #include <stdio.h>
2 #include "FindPrime.h"
3 
4 int main() {
5   findPrime(101, 200);
6 }

在Factorization.c中引用如下(Factorization.c在quest14文件夾,該文件夾和quest12在同一文件夾下,FindPrime.c和FindPrime.h在quest12文件夾下):

 1 #include <stdio.h>
 2 #include "../quest12/FindPrime.h"
 3 
 4 void printFactorization(int number) {
 5 
 6   int factor = 2;
 7   for (int i = 2; i <= number; i++) {
 8     if (number % i == 0 && isPrime(i)) {
 9       if (i == number) {
10         printf("%d", i);
11       } else {
12         printf("%d * ", i);
13       }
14       factor = i;
15       break;
16     }
17   }
18   printFactorization(number / factor);
19 
20 }
21 
22 void printE(int number) {
23   printf("%d = ", number);
24   printFactorization(number);
25 }
26 
27 int main() {
28   int number;
29   printf("請輸入要因式分解的數:\n");
30   scanf("%d", &number);
31   printE(number);
32 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM