Jacek Caban wrote: > Why? Both syntaxes are correct, so it's a matter of style preferences. I > prefer the style I use and I don't see any reason to change it. > > Jacek
Speaking generally, there is one potential opportunity to create a hard-to-find bug. If one has something like, say: struct tagS { int i; }; ... struct tagS ar[N]; then it is possible for a programmer to subconsciously believe he or she is accessing the nth element of the array, but to accidentally write ar->i = 3; instead of (ar + n)->i = 3; This would compile and run fine, but would write to the zero'th element instead of the nth. Whereas, if one adopts the array style ar[n].i = 3; then it is impossible to have this accident, since the following is syntactically incorrect. ar.i = 3; /* error: request for member ?i? in something /* not a structure or union I suspect I am likely to be a bit irritating, from time to time, in reporting static issues. But if I find that a genre of report gets rejected - say, for example, that nobody cares if an enum list ends in a trailing comma - then I shall just switch off that check. Hopefully, it is better to be bothered 100 times by me than 100,000 times by a static analyzer. :) -- Andy.