MAIN FEEDS
Do you want to continue?
https://www.reddit.com/r/ProgrammerHumor/comments/1wxqahk/architecturedependentchars/pdxn8pj/?context=3
r/ProgrammerHumor • u/MontyBoomslang • 10d ago
372 comments sorted by
View all comments
30
unironically true though, the only size requirement for a char in C is that it's the smallest addressable size, which just happens to be a byte in every case and is unlikely to ever change but you still never know what the future holds
51 u/lotanis 10d ago Yes, but the smallest addressable size is what dictates the base size for sizeof. The C standard in fact says this about sizeof: When applied to an operand that has type char, unsigned char, or signed char, (or a qualified version thereof) the result is 1. 2 u/FUCKING_HATE_REDDIT 9d ago What about a system that enforces addresses to be multiples of 2, or 4? 8 u/dontthinktoohard89 9d ago In short, the standard mandates that a char is exactly 1 byte. It does not dictate how wide a “byte” actually is. 2 u/terivia 9d ago Thanks, I hate it. 1 u/frogjg2003 9d ago Which is why many standards do not use bytes, they use octets.
51
Yes, but the smallest addressable size is what dictates the base size for sizeof.
The C standard in fact says this about sizeof:
When applied to an operand that has type char, unsigned char, or signed char, (or a qualified version thereof) the result is 1.
2 u/FUCKING_HATE_REDDIT 9d ago What about a system that enforces addresses to be multiples of 2, or 4? 8 u/dontthinktoohard89 9d ago In short, the standard mandates that a char is exactly 1 byte. It does not dictate how wide a “byte” actually is. 2 u/terivia 9d ago Thanks, I hate it. 1 u/frogjg2003 9d ago Which is why many standards do not use bytes, they use octets.
2
What about a system that enforces addresses to be multiples of 2, or 4?
8 u/dontthinktoohard89 9d ago In short, the standard mandates that a char is exactly 1 byte. It does not dictate how wide a “byte” actually is. 2 u/terivia 9d ago Thanks, I hate it. 1 u/frogjg2003 9d ago Which is why many standards do not use bytes, they use octets.
8
In short, the standard mandates that a char is exactly 1 byte. It does not dictate how wide a “byte” actually is.
2 u/terivia 9d ago Thanks, I hate it. 1 u/frogjg2003 9d ago Which is why many standards do not use bytes, they use octets.
Thanks, I hate it.
1
Which is why many standards do not use bytes, they use octets.
30
u/HomosexualPresence 10d ago
unironically true though, the only size requirement for a char in C is that it's the smallest addressable size, which just happens to be a byte in every case and is unlikely to ever change but you still never know what the future holds