| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The WFDB_Time type is defined as a signed integer type of at least 32
bits, which means that it can represent sample numbers up to 2,147,483,647. By
default, WFDB_Time is defined as an alias for the standard C
long int, and many existing applications have been written with the
assumption that WFDB_Time and long int are interchangeable.
However, it is quite possible for a record to be longer than 2,147,483,647
samples (about 25 days of recording at 1 kHz) and it is useful to be able
to process such records on machines where a long int is only 32 bits.
If you are using a modern C compiler, with WFDB library version 10.7.0 or
later, it is possible to define WFDB_Time as long long int
instead of long int. This lets your program work with sample numbers as
large as 9,223,372,036,854,775,807, even on a 32-bit machine. To do this, add
the following line at the very beginning of your source file, before
including ‘<wfdb/wfdb.h>’:
#define WFDB_LARGETIME |
If your program consists of multiple ‘*.c’ files, be sure to do the same
for each file. Alternatively, you can define this macro on the C compiler
command line (e.g., -DWFDB_LARGETIME if you are using gcc).
When doing this, you will also need to ensure that your program handles large
time values consistently, by using the WFDB_Time data type rather than
long or long long, using WFDB_TIME_MAX rather than
LONG_MAX or LLONG_MAX, using WFDB_Pd_TIME rather than
"ld" or "lld", and so forth.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
PhysioNet (wfdb@physionet.org)