- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please consider the following code:
...
alt_u16 i;
....
for(i=0x0000; i<=0xFFFF; i++)
...
I am getting the following warning during my compilation: comparison is always true due to limited range of data type To temporarily solve this I changed the upper limit from 0xFFFF to 0xFFFE My questions are: - Why this is happening? I ask this because I was thinking that the alt_u16 as an unsigned 16 bit could fit the 0xFFFF
- Do I need to increase the type alt_u16 to alt_u32 only to support one additional bit or how can I solve this problem?
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
alt_u16 can hold 0xFFFF, but it can't hold anything larger than that. So the comparison "<= 0xFFFF" is always true. Which is exactly what the compiler is telling you the problem with your code is.
You can use an alt_u32 to keep the rest of your for() loop the same as already written.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- alt_u16 can hold 0xFFFF, but it can't hold anything larger than that. So the comparison "<= 0xFFFF" is always true. Which is exactly what the compiler is telling you the problem with your code is. You can use an alt_u32 to keep the rest of your for() loop the same as already written. --- Quote End --- thanks again, ted

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page