Being a cross platform compiler, GCC is often the compiler of choice for developing software that is required to execute on a wide variety of hardware and/or operating systems.
As most of the compiler with GCC, is the same on every platform, only code which explicitly uses platform-specific features has to be rewritten for each system.
It has also been ported to more kinds of processors and operating systems than any other compiler.
Being an open source software it readily came into use and acceptable for millions of users....
But its lagging far in performance from its counterpart as its too slow and difficult to manage at times...
But I like the "lesser in size" factor also...