News for hackers. Stuff that matters.
Re:Why does this C program compile? by asveikau on Wednesday December 19, 2012 @03:21PM (#4944585)
This is what bothers me about a lot of programmer communities these days. What is a very mundane detail of K&R legacy, that C programmers know very well either from looking at old source trees or making sense of error messages, suddenly turns into something where 116 people (current stack overflow +1 count) are totally amazed and breathless that they've discovered something deep. I suppose it's fair if they just don't know C, so they've not seen it and find it interesting, but could this person's dilemma not be resolved with a simple google search? Or even taking a guess?
Re:Why does this C program compile? by Retric on Wednesday December 19, 2012 @03:59PM (#4944796)
It can be really hard to Google things when you don't know the terms involved. Until, someone posts source code and you get directed to stack overflow etc. Thus, the fact that out of millions of people with some familiarity with C 100 or 1000 chose to up vote an obvious post does not really seem that strange.
Re:Why does this C program compile? by kelnos on Thursday December 20, 2012 @12:51AM (#4946464)
Thing is, the C standard (compared to many other standards) isn't even that complicated. Googling for the C standard doc, and then grepping through for "function declaration" would likely clear that up.

But it's way easier to consult the lazyweb than to do your own research.

Re:Why does this C program compile? by Retric on Thursday December 20, 2012 @08:59AM (#4947692)
Searching for "C standard doc" does not actually work.

"C99 standard doc" let's you find http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf but searching for "function declaration" does not take you anywhere useful.

That's not to say reading the whole thing is a waste of time, just beyond the scope of most new programmers.

Re:Why does this C program compile? by greenyoda on Wednesday December 19, 2012 @11:07PM (#4946231)
You don't even have to Google it. The Wikipedia article on C talks about K&R C vs. modern C:

https://en.wikipedia.org/wiki/C_%28programming_language%29#K...

Re:Why does this C program compile? by vaxdigitalnh on Wednesday December 19, 2012 @05:43PM (#4945234)
I agree with you. Maybe the better question is why does anyone think it shouldn't compile? And then we can ask how much programming history they know.

I think it's useful to know how C compilers, the C specification and C coding styles have evolved over the years. For one, it helps put some of the arguments for/against certain styles and syntax in perspective.

In short, make an effort to learn from history before you make the minimal effort required to learn from a contemporary forum like stackexchange.

Re:Why does this C program compile? by fayden on Wednesday December 19, 2012 @04:03PM (#4944821)
Why do you assume 116 people are "amazed and breathless"? It's an interesting question and I don't believe the answer is obvious unless you've been exposed to legacy C code before, and such users may arguably constitute a large part of SO's audience.

You may be able to solve the question by a simple search, but it still fits in on StackOverflow. The fact that it was upvoted a lot is irrelevant to me, it just means a few people bothered to press a button.

Re:Why does this C program compile? by kelnos on Thursday December 20, 2012 @01:17AM (#4946523)
Maybe "amazed and breathless" is a bit hyperbolic, but I assume the parent is referring to the number of people who had up-voted it at the time of his posting.

Perhaps for people who don't really know C, that's interesting information, but anyone who calls themselves a "C programmer" should not be surprised by that bit of code (well, you should be surprised if anyone still writes code like that, but not surprised that it's valid).

It's not even just an "exposed to legacy code" thing: C is a fairly simple language in both syntax and concepts (esp. when compared to most other languages people are using today), and I don't believe you can call yourself fluent in C without this kind of knowledge.

(I could also argue from the other angle: if you haven't been exposed to that sort of legacy C code, you probably haven't done it enough to call yourself fluent.)

I think it's an interesting question from the perspective of "what are some cool language gotchas that people not familiar with the language would find neat?"... or from the perspective of someone who is new to C, came across some code like that, and is trying to learn what's going on (and is apparently too lazy to google the C specification and spend 2 minutes reading it).