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 }

 

posted @ 2018-11-22 16:34  天南星2018  阅读(8715)  评论(0编辑  收藏  举报