According to WMO 1.2.3.2:
A code table is a list of choices where only one of the choices can be selected at a given time. The selection is accomplished by coding the number of the desired entry in the appropriate place in the GRIB2 Section. A flag table, on the other hand, is a list of choices where any combination of the choices can be selected at a given time. The combination is accomplished by turning bits of a bit string on or off. Code and Flag tables are also categorised by the Section number in which the code or flag table is referred to.
This applies equally well to GRIB1 and also to BUFR.
For example if you do a grib_dump -O -t
on a GRIB2 file, you will see some keys whose type is Code Table ("codetable") and Flag Table ("codeflag"):
...