1. The C3D header section does not provide any information about the storage format used for floating-point and signed integer numbers. There exist three floating-point representations – DEC, SGI/MIPS, and Intel, and two signed integer representations – big endian and little endian, reflecting which order bytes are stored in memory. Both the DEC and Intel processors use the little endian method where the lowest bytes are stored first in memory. The number structure information can be retrieved from the parameter header record at the start of the parameter section.
2. In general, the data in the C3D file header section should be either considered a direct copy, or derived from, the values stored in the parameter section of the C3D file. Applications should, in general, always attempt to read the parameter section values directly and should consider them the master records that can always be trusted.
3. The C3D header structure contains a pointer in the first word of the file that locates the start of the C3D parameter section. Always use the header pointer to locate the start of the parameter section and then, whenever possible, use the parameter values in the parameter section to locate other sections within the C3D file.
4. The C3D format specifies that the location of the first 3D data section record will be read from the POINT:DATA_START value in the C3D parameter section. The reason that the value of DATA_START, as well as other parameters, is repeated in the header of the C3D file is to allow any basic utility to access the 3D data without having to read and decode the parameter section.
5. Applications that create C3D files must always ensure that the C3D header section contains the identical copies of those values that are also stored in the parameter section (e.g., POINT:DATA_START, POINT:RATE, ANALOG:RATE etc). A C3D file may have become corrupted if there is a discrepancy between header record and parameter section values for the same items. Software applications should be prepared to handle corrupted C3D files that contain either mismatched header and parameter information or parameter records that do not contain the correct pointers to the start of the 3D data section.
6. Software applications should always preserve the values of header words marked “reserved for future use” whenever a C3D file is rewritten. This will result in applications that are “friendly” towards any future extensions to the C3D file format that modify the header.