[luau] Dazzle me with your C programming prowess
Jimen Ching
jching at flex.com
Mon Apr 22 20:06:47 PDT 2002
On Mon, 22 Apr 2002, Dean Fujioka wrote:
>Thanks for your knowledge jc.
No problem.
>What's funny about this thread to me is that Jeff solved his problem
>before I even posted my response. I'm glad that you all contribute to
>help a newbie like me learn something.8)
One more tip, before this thread goes into the archives.
One of the problems that new C programmers run into on Unix is with the
math routines in the standard C library. I.e. if you had a simple C
program like this:
#include <stdio.h>
int main() { printf("Hello world!\n"); return 0; }
You compile it with 'cc helloworld.c', and it would work. This is because
'cc' automatically added -lc for the standard C library. But, if you had
this:
#include <stdio.h>
#include <math.h>
int main() { printf("sin(0.7) = %f\n", sin(0.7)); return 0; }
Then the same command will fail. Why? Because for some reason, the Unix
gods decided that the standard C library (libc.a) should not have the math
routines in it. They placed all of the math routines in libm.a. So the
command line is 'cc helloworld.c -lm'. Without the -lm, you will get an
error about the 'sin' routine being missing.
Note also. A few of the math routines are _macros_. Thus, you have to
include 'math.h' to use _any_ math routines. I have seen a few questions
asking why math functions don't work. And the reason is because the
math.h header file was not included.
These are the only two gotcha's that I am aware of. Everything else
should behave as you would expect. ;-)
Good luck.
--jc
P.S. One final tip. When I got started, I wish someone had pointed me to
the 'C Programming FAQs' written by Steve Summit. If you read the
comp.lang.c newsgroup, it is posted once a month. But you can also find
it at:
http://www.eskimo.com/~scs/C-faq/top.html
This document does not teach you to program in C. But it will help you
avoid many of the pitfalls you might run into. There is also a version
for C++. A search for "C++ Programming FAQs" should give you some links.
--
Jimen Ching (WH6BRR) jching at flex.com wh6brr at uhm.ampr.org
More information about the LUAU
mailing list