The decision where a variable belongs shouldn't be based on "ease of access", but on actual association. You didn't specify what these local variables are for, and what property they describe, but at the heart of avoiding global variables is the realization that
almost every variable describes some kind of property or state of some kind of object, and therefore should be tied to that object. (and you should create a class for that object if you didn't already)
Accessibility is really only an afterthought. If for instance you have a variable that describes a property of B, and you need to access this information for specific operations in A and C, then pass that property as a function parameter, or provide a method for be to read the value of this property, if A/C already have access to the B object.
There are certainly exceptions to the abovementioned 'rule'. But it really helps if you consider what, exactly, a certain variable describes. OTOH, if the purpose of that local variable cannot be described easily, this may be due to variable reuse; that is another problem entirely, and should be avoided. There is a
recent article about why you shouldn't recycle local variables[
^], and it applies to global variables as well. Maybe even more so!