Re: C Programmer Needed



Bjørn Augestad wrote:
> Michael Wojcik wrote:
> [snip]
> > For that matter, there isn't much from C99 that I miss. Let's see:
> > standard-conforming snprintf, va_copy ... nothing else immediately
> > comes to mind. I have no use for //-comments, which as far as I can
> > see just encourage overly-long source lines.
>
> How about these changes? Don't you miss any of them?
> long long
> inttypes.h

Just download http://www.pobox.com/~qed/pstdint.h . It will satisfy
your needs better than an unadopted standard. No need to "miss" either
of those.

> VLA

Apparently this is a non-deliverable feature in gcc. It would have
been much simpler to provide the alloca() function which probably every
compiler could easily have implemented, and stop pretending that C has
what you could call serious strong typing.

> inline functions

A nice feature for the 1980s -- comparable to the "register" keyword.
It makes some sense for C++, but for serious compilers this is a
totally irrelevant (and deceptively named) feature. It should use the
mneumonic noref as should the register keyword, since functionally the
only thing either does is assert a guarantee that the program does not
take its address. (Most serious optimizing compilers auto-inline.)

> _Bool (just kidding)

:)

> __func__

Ok, this would be nice to have, but since its for debugging __FILE__
and __LINE__ are usually good enough. The real value of this is
actually for applications that have their own linked in debuggers --
but there are methods of doing this by parsing your .MAP file at link
time so beyond hard coded instrumentation, its actually not that
valuable, and built-in debuggers are always platform specific anyways.

> __VA_ARGS__

Too little too late. This does not deliver on meta-programming/lamda
features that the C preprocessor desperately needs.

> classification macros

What are these?

> snprintf()

I thought this came with C95. Whatever -- first of all its *vsnprintf*
that we want, and we want it to be *EXTENSIBLE*. Why can't I have it
print a user defined struct? Sorry, its just too pathetic to get
excited over.

> better strftime()

Better how? Well whatever it is, the answer is no. What I want is a
guarante of >= 64 bits for the struct time_t, and useful numeric
arithmetic on time that lets us know that there will be no problem in
2032, and we can label things with times before 1900 if we like.

> Longer string literals

Lol! Sorry, this isn't something the *standard* delivers, unless you
get everyone on board (which C99 has not). It was delivered by the
compiler vendors that matter a long time ago. I also don't understand
why the minimum guaranteed length isn't just 32767 or INT_MAX.

--
Paul Hsieh
http://www.pobox.com/~qed/
http://bstring.sf.net/

.



Relevant Pages

  • Re: about declaration of huge matrix in C
    ... In this case, they don't matter. ... The only such guarantee is in C99 5.2.4.1: ... followed by a list of limits ...
    (comp.lang.c)
  • Re: What is correct way to pack records
    ... Though it carries some baggage that may or may not matter to you. ... > This may guarantee the order, but it doesn't guarantee packing, and the ... > results may vary from one compiler to another. ... be verified against the file record layout. ...
    (comp.lang.ada)
  • Re: Requesting advice how to clean up C code for validating string represents integer
    ... Or whatever the GNU C compiler uses when the -ansi switch is turned ... -ansi Support all ANSI standard C programs. ... Please tell me whether GNU C MAN pages are referring to C99 or what? ...
    (comp.lang.c)
  • Re: Storgae durations
    ... whether C99 is the "current" standard depends on what ... gcc is *close* to being a C99 compiler, but it isn't actually there yet. ... That's precisely what "conforming" means. ... The function won't always invoke undefined behavior, ...
    (comp.lang.c)
  • Re: const array declaration
    ... [I snipped some gcc diagnostics from a previous poster here] ... outside the C code changes it, so that the compiler cannot simply ... "b" are thus not at all constants, but C99 accepts this, just as ... In C89, all aggregate initializers ...
    (comp.lang.c)

Loading