这个项目实现了一个简单的计算器功能,支持加、减、乘、除四种运算。
项目结构
calculator/
│
├── main.c # 主程序
├── calculator.h # 头文件,声明函数和常量
└── calculator.c # 实现文件,定义函数
代码实现
1.calculator.h(头文件)
#ifndef CALCULATOR_H
#define CALCULATOR_H
// 函数声明
double add(double a, double b);
double subtract(double a, double b);
double multiply(double a, double b);
double divide(double a, double b);
#endif // CALCULATOR_H
2.calculator.c(实现文件)
#include "calculator.h"
// 加法
double add(double a, double b) {
return a + b;
}
// 减法
double subtract(double a, double b) {
return a - b;
}
// 乘法
double multiply(double a, double b) {
return a * b;
}
// 除法
double divide(double a, double b) {
if (b == 0) {
printf("Error: Division by zero!\n");
return 0;
}
return a / b;
}
3.main.c(主程序)
#include
#include "calculator.h"
int main() {
double num1, num2;
char operation;
printf("Enter first number: ");
scanf("%lf", &num1);
printf("Enter operation (+, -, *, /): ");
scanf(" %c", &operation); // 注意空格,避免读取换行符
printf("Enter second number: ");
scanf("%lf", &num2);
double result;
switch (operation) {
case '+':
result = add(num1, num2);
break;
case '-':
result = subtract(num1, num2);
break;
case '*':
result = multiply(num1, num2);
break;
case '/':
result = divide(num1, num2);
break;
default:
printf("Invalid operation!\n");
return 1;
}
printf("Result: %.2lf\n", result);
return 0;
}
编译与运行
1. 编译
在终端中进入项目目录,使用以下命令编译:
gcc main.c calculator.c -o calculator
2. 运行
编译成功后,运行生成的可执行文件:
./calculator
示例运行
Enter first number: 10
Enter operation (+, -, *, /): *
Enter second number: 5
Result: 50.00
项目说明
- 头文件 calculator.h:
> 声明了四个函数:add、subtract、multiply 和 divide。
> 使用 #ifndef、#define 和 #endif 防止头文件重复包含。
- 实现文件 calculator.c:
> 实现了头文件中声明的函数。
> 包含头文件 #include "calculator.h"。
- 主程序 main.c:
> 包含头文件 #include "calculator.h"。
> 从用户输入中获取两个数字和操作符,调用相应的函数进行计算。
优点
- 模块化:将功能分离到不同的文件中,便于维护和扩展。
- 可读性:代码结构清晰,易于理解。
- 复用性:calculator.h 和 calculator.c 可以被其他项目复用。
扩展
- 可以添加更多的数学运算函数(如求平方根、幂运算等)。
- 可以增加错误处理机制,提高程序的健壮性。
- 可以将输入和输出部分封装到单独的文件中,进一步提高模块化程度。
通过这个简单的多文件项目,可以掌握C语言中 .h 和 .c 文件的分离方法,为开发更复杂的项目打下基础。