you are viewing a single comment's thread
view the rest of the comments
[–] 11 points 5 days ago (6 children)

question, why is a declaration not a statement?

  • source
  • hideshow 6 child comments
  • [–] 15 points 5 days ago (3 children)

    Possibly because declarations were originally not statements in C? You could only declare variables at the start of a function, but not assign them to something at the same time.

    Not sure why it still wouldn’t be allowed, though, especially if an empty statement can be a statement.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 9 points 5 days ago

    I think it evolved like that:

    1. Declarations are separate entities to statements, because declarations do not translate to a machine code instruction
    2. Labels only make sense when attached to statements because they need to point to a particular machine code instruction <-- This should have been changed at least when declarations were allowed to be mixed with statements in compound statements
    3. Definitions are declarations plus an assignment, let's make them a subset of a declaration <-- I think this is the biggest mistake of them all
    4. "Well, it's already been that way for 40 years, too late to change it now!"
  • source
  • parent