#1
  1. No Profile Picture
    Junior Member
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2002
    Location
    in the deep end
    Posts
    8
    Rep Power
    0

    C in Linux and C in Windows/Borland


    Hello
    I have the opportunity to attend a Programming in C course at my local community college, and want to take advantage of this opportunity. The difficulty is however is that they teach using Windows (using Borland) and I use Linux Red Hat 8.0. I don't see much point in trouncing my OS to learn C on Windows when I have C on my trusty Linux box and would prefer to elarn in that environment.
    My question is - to what extent will there be incompatabilities between the teaching and my own OS use/practice? Are these insurmountable? What would I need to do in order to overcome any caveats? Any other info/tips would also be useful, such as references, etc.
    I have spoken about this to the instructor who claims that Linux uses ANSCII (?) C. I wouldn't know, never having used it before. Is this true that RH8.0 uses ANSCII C? What kind of IDE would I use if any?
    As you can tell, I have a load of questions about this, and would like to try and answer these as quickly as I can because the course is due to start on Feb 25th, so any input from this forum would be a step in the right direction.
    Many thanks.
  2. #2
  3. *bounce*
    Devshed Novice (500 - 999 posts)

    Join Date
    Jan 2002
    Location
    Delft, The Netherlands
    Posts
    514
    Rep Power
    42
    Well, it all rather depends on the way the class is taught.. If you're unfortunate, it'll actually be more like a "how to program in Windows using Microsoft Visual C".

    ANSI C (or ISO C, for purists) is a standard that most of today's compilers (including GCC on Linux, and MSVC on Windows) are compliant with. The C language itself is rather bare-boned. It doesn't have any intrinsic features that facilitate, say, easy graphics programming. It can be done, but you'd have to do some direct hardware programming, which is downright hard, and leads to code that's practically unportable. What you do have, is the standard C library, which can be used for things like file i/o, and a few standard utility functions for doing math and dealing with strings.

    So, as long as you stick to the standard C library, your code will be fairly portable. But if you want anything beyond that, you'll have to use other libraries. And that's where it matters what platform you're on. If you're on Linux/UNIX, you'll probably use something like Gtk+, Xaw, or maybe even the X library itself to build your GUI application. In Windows, you'll use the Windows library to create your GUI application.

    In short, if the focus is actually on the language itself (which is hard enough to master by and of itself), and not so much on how to do Windows programming in C, then you're OK.

    What kind of IDE would I use if any?
    Well, there are quite a few actually. I don't bother with any of them myself, though; vim suits me just fine. kdevelop is pretty nifty from what I've seen, but I'm sure other members here can point you to other IDEs on Linux.

    If you're looking for a decent and free IDE on Windows, then check out Dev-C++ .

    One final note: C and C++ are not one and the same language. C++ is mostly backward-compatible with C, but when used right, C and C++ turn out to be two very different languages.
    "A poor programmer is he who blames his tools."
    http://analyser.oli.tudelft.nl/
  4. #3
  5. No Profile Picture
    Junior Member
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2002
    Location
    in the deep end
    Posts
    8
    Rep Power
    0
    Thanx Analyser - that was useful: helps me frame some of the questions that I need to put to the instructor. I do recall from my prior conversation with him, that he said that using the ANSCI/ISO C would make gui/graphics work pretty difficult. However, be that as it may - I'm more interested in learning the basics of the language itself rather than on how to create GUIs and dialog boxes, etc. I suspect that that is stuff I could pick up later, since my focus is really on the structure and process involved in programming.
    Thanks :)
  6. #4
  7. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2003
    Location
    Right Coast
    Posts
    25
    Rep Power
    0

    there is none higher


    You couldn't pick a better language with which to learn the basisc by.

    J
  8. #5
  9. /(bb|[^b]{2})/

    Join Date
    Nov 2001
    Location
    Somewhere in the great unknown
    Posts
    5,163
    Rep Power
    793
    I think Analyser covered it pretty well. This will mainly depend on what kind of class is taught. An introduction to the language should be easily portable between operating systems with only possibly a few minor catches here or there between different libraries. If the class takes on GUI programming (which isn't as common anymore with C, but done more with C++ now) then you would be much better off using the same setup as the class is using.

    The thing about IDEs is that if you don't start using them in the beginning, you will learn the compiler aspect of the language much quicker and easier IMHO. Once you know how to use the options for the compiler well, then move into using an IDE. But for console applications the IDE isn't much help anyway.
    So, if it is just a beginners class and the instructor isn't going to get into GUI (I would ask to be sure) then I would just stick with vim amd gcc.

    Just my 2 cents.
  10. #6
  11. No Profile Picture
    Junior Member
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2002
    Location
    in the deep end
    Posts
    8
    Rep Power
    0
    Thanx guys for your input. I will be looking at starting a computer systems engineer certificate course come Sept, and both C and java are the languages. It looks like I am going to have to invest in a second box - only basic mind you - and load win98 onto it so that I can follow the process of the class. Oh well, the experience of doing the class will be worth the downgrade from a Linux box (;) )!!!!
    I take your advice Onslaught about IDEs - if I have a choice it would be preferred to forego one until I'm more knowlegable about the language rather than set up a kind of dependency upon the IDE. There may not b the choice.
    The language that I am teaching myself through books, practice and email/lists/webtuts is Python - really decent language for a newbie and is, I understand, pretty powerful too. Come Sept I'll be further along with Python and will hopefully be in a position to understand the basic constructs of programming. I am also doing some reading (e.g. 'How To Design Programs' based on (Dr)Scheme as well as 'The Structure and Interpretation of Computer Programs'. SICP is a bit heavy going, despite the authors being good writers, whereas the HTDP is easier to read and follow. I'll get there and will be sure to screech for help when (not if!!) I need it.
    All the best :)
    Awhen

IMN logo majestic logo threadwatch logo seochat tools logo