Conclusion / Wrapup
Visitors to VTC.com will be able to view all introductory videos for each training course.
Free Trial Members will gain access to first three chapters for each training course.
Full Access Members have full access to VTC.com’s entire library of video tutorials.
Learn More
Subtitles of the Movie
You cannot go wrong becoming more familiar with C, check out this website; it shows a relative popularity of languages. At the time this course was produced, C was the second most popular language in the world and Java a derivative C was the most popular. Five of the top ten languages came from the C definition or were based on C. Remember the C Language described in this course is Standard C, the description here will not exactly match any compiler, every compiler has some quirks, a few things it does differently. I don't care how hard and loud they claim to be in compliance, somewhere along the way they have varied. The Standard has been around long enough and is clear enough that you probably won't find any shortcomings in a language. If the compiler claims to be compliant it more then likely has everything that is in the standard but nobody's perfect and all the compilers are going to vary from the strict standard in some subtle ways. Some compilers are more careless then others but variations in such a mature Language as C are generally obscure and you probably won't come across any of them. Mostly you will find extensions. Every outfit that writes a compiler has a pet peeve about something and adds options that allow you to do things in a different way or do something not defined in the spec and that's good. That sort of thing is one of the biggest source of ideas for standard committees when they work to come up with a language definition. Using such extensions does prevent the code from being portable however. I spent several years as a compiler writer and I can tell you where to look if you want to search for compiler bugs. First look at the way the language works with the Operating System. Everything from the command that runs the compiler to handling files. The underlying system can act in surprising ways that even refuse to perform some functions. Try extreme and boundary values with a math library. There is no known way to test the math functions for all possible cases. The C Compiler generates modules for the linker, it could be that the linker has been upgraded or downgraded or just changed and doesn't perform exactly the same way the compiler writers expected it to. Some things in the language are rarely used; these items such as multi-byte character manipulation may not have been tested as thoroughly as they should. Generally when you're writing a program that is to be used in production, you want to be able to compile and run it on more then one machine. The good news is that you can do that with C, the standard was specifically designed with that in mind and C has proven itself to be quite portable over the years, even before the standard was devised. C can be given credit for the success of UNIX, it was C that made it portable. You can also point to C as the basis for all open software. Everything licensed under the GNU License is written in C, everything and this includes a number of other programming languages. But the question often comes up when you're developing software which machine should be used to write the code and the answer is simple, you want to use the slowest and smallest system that you're going to be running the software on. If you can make it run there OK it will always be fine on faster and bigger machines. Well almost always because nothing is perfect and if timing is critical you do have a special problem. Besides your compiler the most important tool you have is good documentation and generic documentation won't do it, you can't go by the standard, you must have documentation for your specific implementation. If you're not thoroughly familiar with your documentation I suggest you stop everything you're doing right now and get familiar with it. You need to know exactly where and how to find whatever you need. Many years ago I was given a puzzle and told if I solved it I would learn many inside things about the language that I used to find the solution. It took me quite awhile to solve it, I found lots of ways not to solve the problem but I learned a lot about the programming language. Here's the puzzle, you know how a queen moves on a chessboard, she can go in any direction as far as she wants to go. The question is how many queens can you put on one chessboard without having anyone of them threaten anyone of the others and where do you put the queens? I'm not going to tell you the answer but if you want to verify your solution, send me an email, my address is in the next lesson.
Tutorial Information
| Course: | Advanced C Programming |
| Author: | Arthur Griffith |
| SKU: | 33965 |
| ISBN: | 1-935320-24-6 |
| Release Date: | 2009-01-30 |
| Duration: | 5.5 hrs / 82 lessons |
| Work Files: |
Yes |
| Captions: | Available on CD and Online University |
| Compatibility: |
Vista/XP/2000, OS X, Linux QuickTime 7, Flash 8 |
VTC Sign up & Benefits
- Unlimited Access
- 98,729 Video Tutorials (23,265 free)
- Video Available as Flash or QuickTime
- Over 1026 Courses
- $30 for One Month Access
- Multi-User Discounts Available
United States 