When we define a function, say test(uint256 val)
. I would presume val
would be implicitly defined in memory. But what if we change the funtion visibility modifier, does that change the location of where val
is defined?
I'm interested in 3 function visibility modifiers, public
, internal
, and external
and their effect on the location where val
would exist. I'm also interested in whether it would make a difference if we access the function internally or externally, given that the function visibility modifier is set. Does it make a difference if, say the function is defined as external
and we try to access it internally from the same contract code vs if we access it externally from another contract or from an EOA?