c39340194e89738a2ee7fac1bc1f169d90b743a3
Namespaces in C
In C you can create pseudo-namespaces by abusing structs of function
pointers, making function calls look like module.func(x) instead of
func(x).
A lot of people online spout that this creates overhead, but this should show that clang>=15.0.7 will still inline such function calls. GCC 11.3.1 is unable to inline the function, but will still call the function directly.
Build
./build.sh
Verify code
./build/main
Check disassembly
less dump.asm
Description
Languages
C
22.5%
Makefile
22.4%
Assembly
22%
Shell
17.9%
CMake
15.2%