| | |
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 |
Tag cloud for C
#include * append array arrays asterisks bash binarysearch calculate changingto char character cm copyimagefile creafecopyofanytypeoffileinc createprocess() database directory dynamic execv feet fgets file floatingpointvalidation fork forloop framework function getlogicaldrivestrin givemetehcodez global grade gtkwinlinux hacking histogram ide include incrementoperators input intmain() iso kernel keyboard kilometer km license linked linkedlist linux list lists looping loopinsideloop. lowest matrix meter microsoft mqqueue number oddnumber odf openwebfoundation overwrite owf pause pdf performance pointer posix probleminc process program programming radix recursion recv recvblocked research reversing scripting segmentationfault sequential single socket socketprogramming standard strchr string system systemcall testing threads turboc unix urboc user variable wab whythiscodecausesegmentationfault windowsapi






