Preprocessor and Build Boundaries
Header Source Boundary
A header/source split separates what callers need to know from the function body.
declaration and definition
Headers commonly hold declarations, while source files hold definitions; this single-file version keeps the helper visible before `main`.
Header Source Boundary
header_source_boundary.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
int cubeVolume(int side) {
return side * side * side;
}
int main() {
int side = 3;
int volume = cubeVolume(side);
std::cout << "side=" << side << std::endl;
std::cout << "volume=" << volume << std::endl;
return 0;
}
#include <iostream>
int cubeVolume(int side) {
return side * side * side;
}
int main() {
int side = 2;
int volume = cubeVolume(side);
std::cout << "side=" << side << std::endl;
std::cout << "volume=" << volume << std::endl;
return 0;
}
#include <iostream>
int cubeVolume(int side) {
return side * side * side;
}
int main() {
int side = 5;
int volume = cubeVolume(side);
std::cout << "side=" << side << std::endl;
std::cout << "volume=" << volume << std::endl;
return 0;
}
side ← 3
7int main() {8 int side→ 3 = 3; //@side=2, 5910 int volume = cubeVolume(side3);int cubeVolume(int side)
3int cubeVolume(int side3) {4 return side3 * side * side;5}volume ← 27
10 int volume→ 27 = cubeVolume(side3);1112 std::cout << "side=" << side3 << std::endl;13 std::cout << "volume=" << volume27 << std::endl;14 return 0;15}outputside=3 volume=27
side ← 2
7int main() {8 int side→ 2 = 2;910 int volume = cubeVolume(side2);int cubeVolume(int side)
3int cubeVolume(int side2) {4 return side2 * side * side;5}volume ← 8
10 int volume→ 8 = cubeVolume(side2);1112 std::cout << "side=" << side2 << std::endl;13 std::cout << "volume=" << volume8 << std::endl;14 return 0;15}outputside=2 volume=8
side ← 5
7int main() {8 int side→ 5 = 5;910 int volume = cubeVolume(side5);int cubeVolume(int side)
3int cubeVolume(int side5) {4 return side5 * side * side;5}volume ← 125
10 int volume→ 125 = cubeVolume(side5);1112 std::cout << "side=" << side5 << std::endl;13 std::cout << "volume=" << volume125 << std::endl;14 return 0;15}outputside=5 volume=125