Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

And yet, these days, performing such undefined operations may cause your compiler's optimizer to assume that such code is e.g. dead, and behave unexpectedly.


Oh absolutely. The original author was claiming that using a 'signature' character, NUL, to indicate the end of a string was is the most dangerous one byte 'feature' and speculates on whether or not the folks at Bell Labs thought that through.

In context, C was just a glorified version of assembler (but with better looping constructs) and that one could overrun strings, or randomly go into the weeds if the NUL was missing was 'understood' because that was no more dangerous than simply writing the assembler yourself. I mean 'JSR @R7,0x4bee' isn't really that much different :-)

I think the author was looking at the past through today's understanding of what the C compiler does, as opposed to the purpose it was originally set out for (which was to be more readable than assembly)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: