October 2nd, 2013, 12:09 PM
Can anyone plz tell me which compiler is best for a bigginer?? I'm using Windows 8.
October 2nd, 2013, 12:54 PM
October 2nd, 2013, 01:35 PM
The only requirement you need form a compiler is that it compiles your chosen language correctly. There is no best compiler for a beginner because a compiler does no more than translate your source code.
I think you are asking the wrong question and are perhaps confusing the compiler with a development environment.
I always encourage beginners to make effective use of a debugger; it makes learning a language easier and more interesting, and will speed your development greatly. There are few if any debuggers more powerful or easier to use than that integrated with Microsoft Visual Studio. The free Express editions of Visual C++, and Visual C# and are not crippled in terms of the compiler or debugger.
One minor issue with VC++ is that it does not fully support C99 or C11, (only those parts that are also C++). It is however a fully featured C++ compiler. A perhaps more serious issue depending on your point-of view is that visual GUI design requires the .Net framework, and with VC++ that necessitates the use of C++/CLI; Microsoft's C++ based language for managed code. If you want to use pure C++ and generate GUI applications, VC++ does not make it easy. If you choose VC#, then you are already committed to .NET and C# is designed from the ground-up to work with .NET so is a more natural choice if you wish to use .NET.
Another development environment you might use is Code::Blocks. This is packaged distributed for Windows with the MinGW/GCC toolchain, and includes the WxSmith visual development tools for producing cross-platform GUI designs using WxWidgets.
Another option for GUI development is Qt Creator, but that too uses extensions to C++ (for different reasons), and uses a special code pre-processor (meta object compiler) to generate plain C++ code to pass to the compiler proper. Qt Creator does not include a compiler but can be used with VC++ or MinGW so will work with either of the above tools.
Last edited by clifford; October 2nd, 2013 at 01:39 PM.
October 2nd, 2013, 10:42 PM
You can try Visual Studio Express 2012 for Windows 8, which is free based on what Microsoft says on their website.
Originally Posted by Tamal Tomal
October 3rd, 2013, 12:52 AM
Part of the question that Clifford has raised, but which has not yet been answered, is what version of C do you require, what standard? That question needs to be answered, because not all C standards are supported by all compilers.
C89 is also known as "ANSI C". That is the standard that is universally supported by all C compilers, to my knowledge. In my own world-view, this is the standard that is meant when we call something "C" and the subsequent standards need to be identified explicitly; the ever-present issue of limited support for those subsequent standards making my position necessary.
C99 is the next standard which was released. It mainly added features that are found in C++, though there are a few other things that got added in. Not all compilers support C99! MinGW does not support it due to technical problems with adding that support, so development environments that use MinGW (eg, Code::Blocks, Dev-C++) would also not support C99. Microsoft's Visual Studio (part of which is available for free as Visual C++ Express, which has been recommended to you) is betting its future on C++, not on C, so they only support ANSI C and not C99 nor subsequent standards. If you require C99 support, then you need to get a compiler that will support C99.
C11 is the latest standard. Needless to say, support for this standard is far less than even C99 gets.
If you do not need support for C99, then the recommendations you have received should serve you well. However, if you do require C99 support, then you need to choose a compiler that does support C99. The Wikipedia page for C99 lists a number of compilers and what support for C99 they provide or don't: http://en.wikipedia.org/wiki/C99#Implementations