|
Authored by: Anonymous on Thursday, May 03 2012 @ 08:46 PM EDT |
Yes, but sockets.h isn't actually IN the standard. It may be
in POSIX, but the C standard is ISO and there are a great
many useful programs that can be written without sockets.[ Reply to This | Parent | # ]
|
|
Authored by: greed on Thursday, May 03 2012 @ 10:18 PM EDT |
The C standard has two classes of implementation: hosted and standalone.
The libraries are only part of the hosted implementation.
(As of C89; I'm not sure if you need the new inttypes and things like that for a
standalone implementation of C99. I'm going to put on my grumpy old UNIX guy
hat now... well, not that old: I'm never going back to K&R C.)
Therefore, the (say) C cross-compiler for the Arduino doesn't need to bother
with any of the C standard libraries.
Following the Principle of Least Surprise, it does actually provide a number of
routines which are similar to the C standard ones. But not all of them are
there, and things like printf and scanf are "weird" because of the way
memory works on the AVR chips.
In other words, it would never pass muster as a "conforming hosted
implementation"; it does qualify as a "conforming standalone
implementation".
Because if you're a standalone implementation, you can have "void
exit(int)" play the Macerana, and "int printf(const char *,...)"
is how you quite the program. It might be a bad idea, but that's an orthogonal
issue as we say.
[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Friday, May 04 2012 @ 04:49 AM EDT |
Would you include Boost as part of the core libraries?
I know the standard answer to most problems I have with the C++ libraries is
"Use Boost, it solves that".[ Reply to This | Parent | # ]
|
|
|
|
|