Which is better, a or b?
From a performance perspective, you’d have to measure it. (And in my opinion, if you can measure a difference, the compiler isn’t very good).
From a maintenance perspective, b is better. Declare and initialize variables in the same place, in the narrowest scope possible. Don’t leave a gaping hole between the declaration and the initialization, and don’t pollute namespaces you don’t need to.