FOR DA BALANCE OF COMPATIBILITY, K&R2 IS ABOUT AS CLOSE TO C AS U GET DEEZ DAYS FOR A TRUE C. JUST DISCARD ALL DA STDLIB CRAP LIKE wchar_t, ISO MACROS, N OTHER UNNECESSARY JUNK DAT AINT COVERED IN K&R2. WE GOTTA UPHOLD DIS AS DA TRUE C.
FUCK ALL DIS NEW SHIT DEY'RE DOIN IN DA NAME OF C. C99, C11, C2X? DAT AIN'T C. DAT'S A DAM JOKE. DAMJOKE99, DAMJOKE11, N DAMJOKE2X. DAMJOKE89 IF U LIKE.
NOW GET DA FUK OUTTA MY THRED, YA FUCKIN THRED BOI RETOIDS.
Name:
L. A. Calculus!jYCj6s4P.g2016-10-07 7:45
HOW MANY PPL ON DA STANDARD COMMITTEE WERE @ BELL LABS AT DA TIME
I DONT SEE KEN THOMPSON, KEN THOMPSON, KEN THOMPSON
I DONT SEE BRIAN KERNYAN
I DONT SEE DOUG MCILLROY
I DONT SEE ROB PIKE
N I SURE AS FUK DONT SEE DEANIS RICKY (RIP)
ALL U GOT IS CORPORATE BOIS AND MICROSOFT, HERB SCHILDT, N OTHER DIRTY CRITTERS. U PROBABLY GOT A FEW JACKASSES LIKE FRIGN FROM SUCKLESS ON DER TOO, WHO WUDNT KNO DA UNIX SPIRIT IF IT BIT EM IN DA KEISTER.
DEYRE TAKIN DA NAME OF C, DEYRE BUTCHERING IT, N IT'S ABOUT DAM TIME DAT WE TAKE IT BACK!
In the first example the attribute is tacked at the end of the case statement. In the second it is tacked directly after the struct keyword. And it the last it is put before the statement. So attributes are pre-, in- and postfix. In a unified syntax, one choice would be made. I would rather see it postfixed after the expression it modifies. Further more they ignore current syntax in use of attributes and invent their own syntax.
So what do you expect?
Name:
Anonymous2016-10-07 17:56
What was wrong with C89?
Name:
Anonymous2016-10-07 19:33
Committees in general are parasites. Name one good thing made by a committee.
>>16 He meant that C89 isn't enough for the 'serious programmer' and these are his reasons that exemplify C99 as being more mature. And indeed, C89 doesn't have native support for a (forced) 64-bit data type (long long).
Name:
Anonymous2016-10-08 18:56
>>18 64 bit ints are rarely needed and of you absolutely need a type for very large ints, you're better off writing your own big num library.
Name:
Anonymous2016-10-08 19:08
>>19 Four billion ought to be enough for everybody
Name:
Anonymous2016-10-08 21:03
>>19,20 Modern programmers are often incredibly wasteful with computer resources. They'll use an int (usually 32 bits on modern machines) as the counter variable for a fixed-duration loop that only does 100 iterations. This sort of idiocy has even infected the C standard, they require the return value of main() to be of int type, even though POSIX requires casting the return value to 8 bits anyway. And a return value higher than 255 is a sign of bad programming anyway, they should be used to represent discrete error conditions, output to the user or another process should be done with standard streams, not by returning a value from main().
The C language would benefit more from the inclusion of fixed-precision decimal types, or from creating a generalized variable-precision integer type (so you could use int(4) for a 32-bit integer, int(8) for a 64-bit integer, and so on). Any integer larger than your processor's word size is going to require special handling anyway (since it won't be possible to fit the whole value into a register), so if you're going to have integers larger than your word size, why have a fixed upper limits at all? Arithmetic is easy to generalize, any int larger than 8 bits is essentially an array of 8-bit integers anyway.
Name:
L. A. Calculus!jYCj6s4P.g2016-10-08 21:38
>>21 I LIKE UR STYLE, BUT IT DONT CHANGE DA FACT DAT C WAS DESIGNED BY MY MAN DEANIS RICKY N U HYENAS WILL STOP AT NOTHIN TO SKEW HIS VISION INTO SOMETHIN SHIT
>>21 I was about to reply to this until I saw >>23. Jesus.
Name:
Anonymous2016-10-09 0:46
Check dubs
Name:
Anonymous2016-10-09 19:25
The same thing already happened to C++ and Java. Look at lambdas in Java. They're a botch, but the FP nuts get to say that their work on Haskell is influencing popular languages like Java.
Name:
Anonymous2016-10-11 16:19
Solution (if you think C89/C99 is okay, like I do):
POSIX requires casting the return value [of main] to 8 bits
Is that true? I mean, it could actually be, I'm just too lazy too check. Also, while we're at it, why not enforce main to only return 0 or 1?
Modern programmers are often incredibly wasteful with computer resources.
This is true though, but not because programmers aren't using C wrong, but because they use JavaScript or any other {immature-high-level-lang-of-the-day}.
>>29 That paper is from 2010 and the title of it neither mentions JavaScript nor the web as a platform. It's not modern.
Name:
Anonymous2017-05-19 21:02
Kenyan Thompson SHEEEEEEIT
Name:
Anonymous2017-05-20 11:51
Smash The Stackriarchy
Name:
Anonymous2017-05-20 15:59
>>32 Can it be for profit or is that too bourgeoisie?
Name:
Anonymous2017-05-20 17:18
>>33 First, we need to understand the stack privilege. Imagine there only poor functions with few arguments doing their thing, that can only pass arguments in registers and then a privileged slow stack function comes in with a dozen arguments and takes 128 bytes of stack space minimum, and if its variadic... Thats why we can't have nice things.
Name:
Anonymous2017-05-20 23:44
Variadic functions were a mistake. Printf() should take two arguments, a pointer to a null-terminated ASCII format string, and a pointer to a null-terminated vector of pointers to arguments.
>>35 void.h just abstracts out the format string by constructing it from types for each arg so p(1,"abc", 4.7) becomes printf("%d,1) printf("%s","abc") printf("%f",4.7_
AMD64 basically IS a RISC processor, with an x86-to-RISC JIT transsembler implemented in hardware. I don't think the registers even map to physical registers on the CPU anymore, they're just basically named global variables now. Granted, IBM's been doing the same thing for decades, but still, it means you can't actually do ``low level programming" even in pure machine code.
C11 be all like: time_t is a platform specific arithmetic type that represents time in an implementation specific format, use difftime() to get an interval between two of them in seconds. Oh, and by the way, time_t is also the type of the tv_sec member of struct timespec which holds whole seconds.