| ▲ | Taniwha 28 minutes ago | |
C originally had =+ and =- (upto and including Unix V6) - they were ambiguous (a=-b means a= -b? or a = a-b?) and replaced by +=/-= The original structs were pretty bad too - field names had their own address space and could sort of be used with any pointer which sort of allowed you to make tacky unions) we didn't get a real type system until the late 80s | ||
| ▲ | adrian_b 7 minutes ago | parent [-] | |
ALGOL 68 had "=" for equality and ":=" for assignment, like ALGOL 60. Therefore the operation with assignment operators were like "+:=". The initial syntax of C was indeed weird and it was caused by the way how their original parser in their first C compiler happened to be written and rewritten, the later form of the assignment operators was closer to their source from ALGOL 68. | ||