2 ms·
If you had to write code for a platform and the only compiler available was C89 compatible, you better know what syntax the C89 standard says is legal and not l
by ksk 13y ago
If you had to write code for a platform and the only compiler available was C89 compatible, you better know what syntax the C89 standard says is legal and not legal. Its simply called knowing the language. By your implied definition I see every single thing that anyone reads/learns as a 'factoid'. In my mind factoids imply some useless disconnected fact like the number of restricted keywords or the number of pages in the standard or the preferred wine of the standardization committee(its called beer I think :P). I guess we have a difference of opinion on that.
Also the difference in syntax and translation unit/linker behavior is not a random fact. Its the culmination of the thought process that goes into designing the language and also knowing a bit of the theory behind classical compilers/linkers.
- sanderjd 13y agoIt is probable that we have a disagreement about what counts as a "factoid", and maybe it's not a great word to be using ( I took it from the parent), but I do think there are real differences between some things you're conflating. Working within the framework of your example, I think understanding how compilation units and the linker work is far more fundamental than knowing when the the "static" keyword impacts linking and when it doesn't. If I know that I need some way to make my variable visible outside my compilation unit, I can look up the syntax to do it ("factoid"), but if I don't understand how linking works at all, I'm missing a more fundamental mental model. Of course, I absolutely think that a C programmer should know the syntax, it's just less important to remember such things than to understand the model.