On Tue, 3 Apr 2001, Edward Felch wrote:
> I hate to ask a basic c question, but how does the ? in: GET_POS(ch)
> == POS_SITTING ? "sitting" : "resting" work? Thanks a lot... ive been
> wondering
This is the ternary operator mentioned in another thread about code
maintainability. It is a basic C question, and I would recommend you buy
a book on C (even a pocket reference that covers the syntax of the
language would be sufficient).
Having said that, the operator is not the question mark -- the operator is
the question mark and the colon. The expression
(a ? b : c)
should be read
if (a) then (b) else (c)
It's a way of doing a simple conditional selection of a subexpression.
Naturally you can combine these:
#define PDESC(perc) (perc >= 100 ? "perfect" \
: perc >= 75 ? "very good" \
: perc >= 60 ? "good" \
: perc >= 40 ? "average" \
: perc >= 25 ? "bad" : "awful")
Such conditional expressions can be found throughout the code. Naturally,
they can be misused. You should avoid any construct that affords you
terseness at the expense of your readability.
-dak
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/05/01 PST