Re: Coding style question
От | imad |
---|---|
Тема | Re: Coding style question |
Дата | |
Msg-id | 1f30b80c0611021053t526198a2red3488a06efdbca2@mail.gmail.com обсуждение исходный текст |
Ответ на | Coding style question (<korryd@enterprisedb.com>) |
Ответы |
Re: Coding style question
|
Список | pgsql-hackers |
Shouldn't we turn on warnings by the compiler on uninitialized variables? This can also be helpful. --Imad www.EnterpriseDB.com On 11/2/06, korryd@enterprisedb.com <korryd@enterprisedb.com> wrote: > > I've noticed a trend in the PostgreSQL code base - for some reason, we tend > to avoid initializing automatic variables (actually, the code base is pretty > mixed on this point). > > For example in _bt_check_unique() we have: > ________________________________ > static TransactionId > _bt_check_unique(Relation rel, IndexTuple itup, Relation heapRel, > Buffer buf, ScanKey itup_scankey) > { > TupleDesc itupdesc = RelationGetDescr(rel); > int natts = rel->rd_rel->relnatts; > OffsetNumber offset, > maxoff; > Page page; > BTPageOpaque opaque; > Buffer nbuf = InvalidBuffer; > > page = BufferGetPage(buf); > opaque = (BTPageOpaque) PageGetSpecialPointer(page); > maxoff = PageGetMaxOffsetNumber(page); > offset = _bt_binsrch(rel, buf, natts, itup_scankey, false); > ... > > > ________________________________ > > > Notice that four variables are not initialized; instead we assign values to > them immediately after declaring them. > > I would probably write that as: > ________________________________ > static TransactionId > _bt_check_unique(Relation rel, IndexTuple itup, Relation heapRel, > Buffer buf, ScanKey itup_scankey) > { > TupleDesc itupdesc = RelationGetDescr(rel); > int natts = rel->rd_rel->relnatts; > Page page = BufferGetPage(buf); > OffsetNumber maxoff = PageGetMaxOffsetNumber(page); > BTPageOpaque opaque = (BTPageOpaque) PageGetSpecialPointer(page); > OffsetNumber offset = _bt_binsrch(rel, buf, natts, itup_scankey, > false); > Buffer nbuf = InvalidBuffer; > ... > > ________________________________ > > > I'm not trying to be pedantic (it just comes naturally), but is there some > reason that the first form would be better? I know that there is no > difference in the resulting code, so this is purely a style/maintainability > question. > > I guess the first form let's you intersperse comments (which is good). > > On the other hand, the second form makes it easy to see which variables are > un-initialized. The second form also prevents you from adding any code > between declaring the variable and assigning a value to it (which is good in > complicated code; you might introduce a reference to an unitialized > variable). > > Just curious. > > -- Korry
В списке pgsql-hackers по дате отправления:
Предыдущее
От: "Henry B. Hotz"Дата:
Сообщение: Re: Design Considerations for New Authentication Methods