>>11
番兵というと、テーブルなんかを順番になめていくときに、終了を表す値だね。

最後に必ず番兵があるって条件なら、判定がシンプルになる。
for(i=0;tbl[i]!=-1;++i){...

番兵なしなら、テーブルのサイズもチェックしなければならない。
for(i=0;tbl[i]!=-1 || i < TBL_SIZE; ++i){...