[reordered, for thematic reasons]
However, if you're using multiple non-standard headers, you'll need to
figure out which one was the one that defined the macro. In that case,
the answer to your question depends upon which things you consider to
be "the usual tools", and which of those tools is actually unavailable
- you need to explain what you mean by that in more detail. Every
good answer I can think of to your question relies upon at least one
thing that I would consider to be one of "the usual tools".
I find the index for my german printing of K&R2 better than its english
counterpart. For starters, the german version goes all the way to Z, while
my english is starting to show signs of a hard life that includes me
throwing it like a frisbee when it reaches the breaking point. The back
cover became a letter to Julianna.
I think the german version is especially telling here, as the only entry
is:
NULL, Test weglassen 55, 102
s. 99: Die symbolische konstante NULL wird oft statt Null als
Gedächtnisstütze benutzt, um hervorzuheben, daß dies ein spezieller Wert
für einen Zeiger ist. NULL ist is in said:
You can find all the information that you'll normally need to know
about standard macros like NULL by reading any good textbook for the
language, such as "The C Programming Language", Kernighan & Ritchie,
2nd edition. You could also read the standard, but it's written as a
requirements specification; it's not well written for use as textbook.
For non-standard macros, read the documentation for the package that
defines those macros.
That sounds like catechism.
I have a correction for the german Ausgabe, und ich werde mich weiterhin
verdeutchern. Man sieht dabei die Ursache des Fehlers. Die deutsche
Ausgabe hat ein Referenz auf " if zero " und dabei " the short circuit."
Richtig is nicht 102, welch im §5.4 Ami_version steckt, sondern 99.
99 Duesenjaeger, die waren gute Krieger
Hielten sich fuer Captain Kirk
, aber, ich denke an Euch,
und lass 'nen fliegen.