If you use a compiled language, you should periodically look at Godbolt and see what your code is doing and what changes to your code will do in the compiled output.
In this case a positively insane way of calculating squares and cubes generates 311 lines of ARM assembler output that will swallow your memory. With even something as simple as -O1
on the command line it’s replaced by one or two multiplications respectively. With -fwhole-program
it removes the functions entirely and interlaces them into the loop in main()
.
Know your tools. It makes huge differences!
int cube(int num) { char rv[num][num][num]; return sizeof(rv); }
“Doctor, it hurts when I do this.”
Not sure if op is trolling. Seems to be at the same level of sleep sort. (But there not even compiler optimizations can help.)
Not trolling. Just:
Multiplication hurts? 😲
I mean it could hurt: