Message118143
| Author |
pitrou |
| Recipients |
amaury.forgeotdarc, eric.smith, mark.dickinson, pitrou, rhettinger, stutzbach |
| Date |
2010年10月07日.21:38:43 |
| SpamBayes Score |
3.5053877e-06 |
| Marked as misclassified |
No |
| Message-id |
<1286487519.3143.22.camel@localhost.localdomain> |
| In-reply-to |
<1286486523.86.0.587248442341.issue10044@psf.upfronthosting.co.za> |
| Content |
> See the example above: suppose that a compiler is looking at a (p >=
> q) comparison of pointers. Suppose furthermore that in a particular
> case that compiler is smart enough to figure out that q is a pointer
> to the start of an array.
Which array? You can have arrays everywhere in memory, at any address,
ending anywhere.
union {
struct {
char ch1;
char arr1[2];
}
struct {
char arr2[2];
char ch2;
}
struct {
char arr3[3];
}
}
Which is an array, and which is not? is &ch1 an array? and arr1? and
arr2+1? Why would the compiler choose one over another? And what about
arrays defined in other modules? |
|