The following comments are intended for core gdcm developpers.
-
+
* Compiling gdcm:
- Checkout the sources to an arbitrary directory noted GDCM (e.g. ~/cvs/gdcm).
- Checkout the test images to an arbitrary directory noted GDCMDATA
typedef Header* HeaderPointer;
HeaderPointer MyHeaderPointer;
- One notorious counter example for non using C style inclusion concerns
- exact-width intergers (since there seem to be no equivalent for C++).
+ exact-width integers (since there seem to be no equivalent for C++).
When using exact-width integers use the typedef names defined by
the Basic ISO C99: 7.18 Integer types i.e.
int8_t int16_t int32_t int64_t (signed integers)
and
uint8_t uint16_t uint32_t uint64_t (unsigned integers).
+ Conversion table is then:
+ unsigned char -> uint8_t;
+ unsigned short -> uint16_t;
+ unsigned int -> uint32_t;
+ unsigned long -> uint32_t;
+ unsigned long long -> uint64_t;
+ (signed) char -> int8_t;
+ short -> int16_t;
+ int -> int32_t;
+ long -> int32_t;
+ long long -> int64_t;
Hence do not use declarations like "unsigned int".
With g++, accessing those typedef is achieved by the following
#include <stdint.h>