initializing LCD library within setup() ?

It's this line that executes (initializes the LCD to 4bit):

LiquidCrystal lcd(53, 51, 41, 37, 39, 35);

And it happens before setup().

I WISH lcd.begin() was the first thing that talked to the LCD.
You'd think that would be a more normal way to go.... alas, it's not.

Although this code compiles:

// include the library code:
#include <LiquidCrystal.h>

setup() {
 // stuff...

 LiquidCrystal lcd(53, 51, 41, 37, 39, 35);

 lcd.begin(24, 2);
 lcd.print("  Hello ");
}

loop() {
}

I'm not really sure if the LiquidCrystal lcd(53, 51, 41, 37, 39, 35) is actually inserted in that spot, inline with the code, or if it inserts before setup().

The real problem is one of scope. If I put LiquidCrystal lcd(53, 51, 41, 37, 39, 35) in the body of loop() I speculate I can use lcd commands from inside loop() too! But when I call a function and it uses lcd commands, the compiler will again complain about scope.

I think the real fix here is to make lcd.begin() be the thing that does the initialization, not LiquidCrystal lcd(53, 51, 41, 37, 39, 35);

This way, we leave the global declaration of the liquidCrystal and just use lcd.begin() again in whatever routine feels like it needs to re-initialize the LCD.

So, I guess I'm looking for a workaround until this can be fixed, something that will trick the scope gods in the compiler. Or expose an access point into the LiquidCrystal lcd(53, 51, 41, 37, 39, 35) routine so I can call it from wherever it resides, and return from it.

I don't want to have to write my own init routine, that wheel has been invented already in the library, I just want to use it more than once per boot cycle of the Arduino!