You are not logged in. Your edit will be placed in a queue until it is peer reviewed.
We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.
Required fields*
-
You are conflating two fundamentally different things here – array overflow check, which is rarely useful except for debugging, and arithmetic overflow checks, which are often useful.Konrad Rudolph– Konrad Rudolph2011-07-28 08:49:01 +00:00Commented Jul 28, 2011 at 8:49
-
5"I refuse to believe" - that's your call, but if you refuse to believe true things then you're going to have difficulty. Signed integer types are no use in C or C++ for calculations that might overflow. That's a consequence of the standard being designed to avoid imposing overhead on machine architectures whose "natural" behavior is different from whatever you or I think the behavior should be. That consequence was considered worth paying to avoid the implementation burden.Steve Jessop– Steve Jessop2011-07-28 08:55:49 +00:00Commented Jul 28, 2011 at 8:55
-
Calculations with arry bounds are especially suitable for unsigned arithmetic, as you know a priori that you should never get a negative end result anyway.MSalters– MSalters2011-07-28 09:12:45 +00:00Commented Jul 28, 2011 at 9:12
-
"If there is no useful and reliable way of checking for overflow then the language itself is dubious" - then the language is dubious by your definition. If you don't find the language useful, don't use it (or only use implementations and command-line options which provide additional guarantees about overflow). Probably where you part company with the C standard committee is that you think checking for overflow before the operation is useless, and they think it isn't. Possibly you also think unsigned types are useless, and they don't.Steve Jessop– Steve Jessop2011-07-28 15:37:21 +00:00Commented Jul 28, 2011 at 15:37
Add a comment
|
How to Edit
- Correct minor typos or mistakes
- Clarify meaning without changing it
- Add related resources or links
- Always respect the author’s intent
- Don’t use edits to reply to the author
How to Format
-
create code fences with backticks ` or tildes ~
```
like so
``` -
add language identifier to highlight code
```python
def function(foo):
print(foo)
``` - put returns between paragraphs
- for linebreak add 2 spaces at end
- _italic_ or **bold**
- indent code by 4 spaces
- backtick escapes
`like _so_` - quote by placing > at start of line
- to make links (use https whenever possible)
<https://example.com>[example](https://example.com)<a href="https://example.com">example</a>
How to Tag
A tag is a keyword or label that categorizes your question with other, similar questions. Choose one or more (up to 5) tags that will help answerers to find and interpret your question.
- complete the sentence: my question is about...
- use tags that describe things or concepts that are essential, not incidental to your question
- favor using existing popular tags
- read the descriptions that appear below the tag
If your question is primarily about a topic for which you can't find a tag:
- combine multiple words into single-words with hyphens (e.g. python-3.x), up to a maximum of 35 characters
- creating new tags is a privilege; if you can't yet create a tag you need, then post this question without it, then ask the community to create it for you
default