博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言引用不同路径下的头文件的方法
阅读量:6941 次
发布时间:2019-06-27

本文共 2150 字,大约阅读时间需要 7 分钟。

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 
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 
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 
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 }

 

转载于:https://www.cnblogs.com/mobius2018/p/10001961.html

你可能感兴趣的文章
[转]Forms验证中的roles
查看>>
插图式主页
查看>>
【原创】P2P-NEXT测试结论和遗留问题
查看>>
【HIBERNATE框架开发之七】HIBERNATE使用ANNOTATION中各种关系映射的CRUD(增删改查)&&集合映射&&继承映射...
查看>>
搭建jekyll博客
查看>>
扒一扒北邮的安全问题[4]-一大波访问控制问题
查看>>
(unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误
查看>>
Uvaoj 11248 Frequency Hopping(Dinic求最小割)
查看>>
Mac系统Git生成ssh公钥
查看>>
提高数据库查询速度的几个思路
查看>>
数据存储之第三方FMDB
查看>>
如何使用RDS创建Hive元数据库
查看>>
QT中QToolBox的使用,实现抽屉效果
查看>>
MySQL创建索引
查看>>
[JAVA &#183; 初级]:12.内部类
查看>>
私有静态内部类实现线程安全的单例
查看>>
hdu 1106 排序
查看>>
Distributed Systems-Materials
查看>>
linux文件系统实现浅析
查看>>
linux系统中定义的信号
查看>>