Header (.h) 檔是一個專門儲存function、class、structure等等定義的檔案。這讓程式可以先在 Header 檔內定義功能,並在 Source Code (.cpp) 裡實踐. 這樣可以把程式分割成多個檔案,減少每個檔案的行數並增加可維護性。
// library.h
int fibonacci(int n) {
int s = 0;
int d = 1;
for (int i = 0; i < n-1; i++) {
int tmp = d;
d = s + d;
s = tmp;
}
return d;
}
#include "library.h"
// main.cpp
int main() {
printf("%d\n", fibonacci(5));
return 0;
}
// include/utils.h
namespace Utils {
float deg_to_rad(float degrees);
float rad_to_deg(float radians);
float format_angle(float degrees);
}
// include/main.h
#include "utils.h"
// src/utils.cpp
#include "main.h"
float Utils::deg_to_rad(float degrees) {
return degrees * M_PI / 180.0;
}
float Utils::rad_to_deg(float degrees) {
return degrees * 180.0 / M_PI;
}
float Utils::format_angle(float degrees) {
int sign = a < 0 ? -1 : 1;
float positive_a = abs(a);
float mod = std::fmod(positive_a, 360);
if (mod <= 180) {
return sign * mod;
}
else {
return sign * (mod - 360);
}
}
// main.cpp
void opcontrol() {
printf("%f\n", Utils::deg_to_rad(180));
}