shared memory declaration

Anybody know the differences between “shared float shared;” and " extern shared float shared;"

Programming Guide 2.3 page 107:

So “shared float var;” is simpler to use, but SIZE must be known at compile time. Using the “extern” keyword, the size is determined at launch time, but is a little bit harder to manage.

i get it, thank you for reply~