Особенности си-подобного синтаксиса:
1. Case sensitiveness, although case insensitivity is more natural to humans (NOT to computers). This doesn't mean that you should spell identifiers differently than they have been declared (beware!), but can lead to confusion. Real-world example (Java): getWhiteSpace() or getWhitespace()?
2.Operator precedence
3. = for assignment and == for comparison. if (a = b) anyone? Similar, the && and &, || and |, (! and ~) are syntactically too close although they mean different things. Personally, I'd prefer and and or, because symbols should just support syntax instead of being the main part.
4. ++ and -- operators; Makes some statements just a little bit shorter, but introduces side effects to expressions (a = b+++b++). Originally, compilers could compile this more efficiently than i = i + 1.
5. for(init;condition;step) loop; Although best practise is to use it to increment a variable only, no explicit syntax exists for this. Instead, this for construct is redundant as it (nearly) the same as
init;
while (condition)
{
statement;
step;
}
6. switch statement; ever forgotten a break
7. if(condition) statement. Using parenthesis wasn't a that good choice as it can be used in the condition expression itself:
if (!(var & 0x02))
8. Preprocessor
9. Braces
10. Semicolons as statement terminator or separator.
И так далее