7 ms·
> Do you want a warning on every for (int i = 0; i < n; i++) If n is of type size_t, yes please! Also every for (size_t i = sizeof(var)-1; i >= 0; --i) (I've
by rerdavies 2y ago
> Do you want a warning on every for (int i = 0; i < n; i++)
If n is of type size_t, yes please!
Also every for (size_t i = sizeof(var)-1; i >= 0; --i)
(I've been burned by that one more often than I want to publicly admit).
- moefh 2y agoNeither of those things are undefined behavior, but gcc with -Wextra already warns about both: warn.c:6:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare] 6 | for (int i = 0; i < n; i++) | ^ warn.c:10:36: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] 10 | for (size_t i = sizeof(var)-1; i >= 0; --i) | ^~