So how is the author of these tutorials getting his code to run with the voids in place the nested int declare in place?
Most compilers have extensions to allow a void return type for main, and of those compilers many also have those extensions enabled by default.
Could you explain why the compiler gives a warning: Unused variable 'iX'?
iX is declared and set = 3, is this unused?
The global iX was used in the cout statement. It is the iX defined in the main function that is unused. It is almost always a mistake for a variable to be unused other than definition/intialization, so the compiler emits a (helpful) warning to that effect. Warnings don't stop compilation from succeeding. They're just information that is supplied to the user of the compiler.
He is using Code:: Blocks too i think. Just curious.
Code::Blocks is not a compiler. It is an IDE which can be used to interface with any of several compilers.