Bjarne Stroustrup who said something along the
lines of "Every use of a define is an instance of a programmer not
programming correctly."
Gee, thanks. But Bjarne Stroustrup was probably writing about C++, which
allows constants to be associated with a class:
const double Synth::DEFAULT_FRAME_RATE = 44100.0;
For C++, this construct is preferable to using a #define because the scope
is limited to the class and would not conflict with, for example:
const double Video::DEFAULT_FRAME_RATE = 30.0;
That is a great feature of C++ but PortAudio is using 'C' not C++. So I
think our only choices are #define and enum. PortAudio uses both.
http://www.portaudio.com/docs/v19-doxydocs/portaudio_8h.html
Are enums better than #defines?? I am always trying to improve my 'C' chops
so I am open to suggestions.
Phil Burk
Imagine being
able to write to an API as simple and well-designed as
this: <http://www.portaudio.com/docs/v19-doxydocs/portaudio_8h.html>
Just out of interest, why are paNoDevice, paFloat32, etc, defines
instead of const values?
I don't really know. Isn't that kind of a six/half-dozen detail?
Probably. I think it was Bjarne Stroustrup who said something along the
lines of "Every use of a define is an instance of a programmer not
programming correctly." But I was just wondering if it was some
portability thing or something.
--
Bob Ham <rah(a)bash.sh>