Parameters, just like all variables, should have useful, descriptive names that clearly tell you what they are used for. In the case of your add function (which by the way needs to return an int, you left out the return type), it is obvious that varA will be added to varB. But what if you don;t know what a function does, or what its parameters should be?What if you only have a declaration like this? int Func(int a, int b, int c);
Is this function clear as to what it does?
What about this function? int Func(int min, int max, int val);
Is it clear that this function clearly returns a version of val that is within the range min, max? Could you deduce this from the function where the names of the parameters were a, b, and c?
No, you couldn't do that unless title and year were static members, and then you would use the scope resolution operator ::. For this struct you would have to create instances of it (in this example the there are already two objects called mine and yours). You could then say
1 2
movie.title = "Iron Man 2";
movie.year = 2012; // this isn't true, where did you get your dates xD