Struct as argument

I need to understand it better. Why do I need a function prototype if both key and analogMultiplexer are visible to the assignBoard()? Why the IDE does not create function prototypes for functions that take reference arguments? Could you give me an example? I don't need only the code to work, but I need to understand what's happening. Thanks!