| | |
learning C, working around code for different compilers
Please support our C advertiser: Programming Forums - DaniWeb Sister Site
![]() |
i've been reading a lot of the posts here to help me learn C. the problem is, much of the code is written for other compilers (i use gcc). i didn't know there was compiler-specific code until i tried to compile code from questions asked here.
this seems so backwards, coming from a background in interpreted languages. please shed some light on the issue.
this seems so backwards, coming from a background in interpreted languages. please shed some light on the issue.
There's a language standard that compilers are pretty much required to support if they want any market share, but the language definition also allows for non-standard extensions. Every compiler out there will take advantage of this allowance, so code that uses extensions will not be portable across compilers. The same goes with system APIs and third party libraries. However, if you use the standard language, your code should compile everywhere and run as expected.
I'm here to prove you wrong.
Depending whom you work for, there might be a favorite compiler in the shop. Many schools teach on old and outdated compilers, often teachers are most reluctant to change and rewrite their material, the list goes on ...
I have found the Dev C++ IDE reasonably generic in the Windows and Linux world, conforming to most C++ standards with their GCC/G++ combination of compilers.
I have found the Dev C++ IDE reasonably generic in the Windows and Linux world, conforming to most C++ standards with their GCC/G++ combination of compilers.
May 'the Google' be with you!
Not just that, but unless you want to limit yourself to a very small library of functions indeed you're going to have to use compiler specific libraries at some point.
The trick is to use those libraries in such a way that the largest possible part of your code does not directly depend on them.
Example are GUI libraries. Those are pretty much all at least platform specific and often compiler specific as well.
Network libraries are the same, IO handling often as well (if you want more control than scanf and printf can handle).
gcc is no more generic than any other compiler, in fact it has a lot more platform specific libraries and some others and the documentation is often lacking.
In fact, Borland has always had the most standard compliant of all compilers on i386 platforms and a reasonably well marked custom library.
They also provide excellent documentation.
As to teachers being reluctant to change their material, often they aren't even aware they're using non-standard extensions, having learned C (or whatever) from the same book (Learning C in 21 days using Turbo C 1.5) they use to teach their students and never reading anything else.
The trick is to use those libraries in such a way that the largest possible part of your code does not directly depend on them.
Example are GUI libraries. Those are pretty much all at least platform specific and often compiler specific as well.
Network libraries are the same, IO handling often as well (if you want more control than scanf and printf can handle).
gcc is no more generic than any other compiler, in fact it has a lot more platform specific libraries and some others and the documentation is often lacking.
In fact, Borland has always had the most standard compliant of all compilers on i386 platforms and a reasonably well marked custom library.
They also provide excellent documentation.
As to teachers being reluctant to change their material, often they aren't even aware they're using non-standard extensions, having learned C (or whatever) from the same book (Learning C in 21 days using Turbo C 1.5) they use to teach their students and never reading anything else.
![]() |
Similar Threads
Other Threads in the C Forum
- Previous Thread: help me (scheduling)
- Next Thread: my 8-queen program does nothing-but I have no sintax errors
| Thread Tools | Search this Thread |
#include adobe api array arrays asterisks binarysearch calculate char cm copyimagefile copypdffile cprogramme creafecopyofanytypeoffileinc createcopyoffile csyntax database directory dynamic feet fflush fgets file fork forloop framework frequency getlasterror givemetehcodez global graphics gtkgcurlcompiling hacking hardware highest homework i/o include incrementoperators input interest kernel kilometer linked linkedlist linux linuxsegmentationfault list lists locate logical_drives loopinsideloop. match matrix meter microsoft motherboard mqqueue multi mysql number odf opensource owf pattern pdf performance pointer posix probleminc process program programming pyramidusingturboccodes radix read recursion recv repetition research scanf scheduling scripting segmentationfault sequential shape socket socketprograming stack standard string strings systemcall testing turboc unix user voidmain() wab windows.h






