Sometimes to make things easier to write and read, I write some local #define macros within functions (for example, #define O_REAL Ogre::Real).
(for example, #define O_REAL Ogre::Real)
No. There are no such things as "local" #defines.
#define
The scope in which the #define is placed, is unknown at the time as they are processed by the - well - preprocessor. (Hence you sometimes hear the term "preprocessor directive" instead of just "macro".)