Saga3D API Documentation
1.0-RC4
irrpack.h
Go to the documentation of this file.
1
// Copyright (C) 2007-2012 Nikolaus Gebhardt
2
// This file is part of the "Irrlicht Engine".
3
// For conditions of distribution and use, see copyright notice in irrlicht.h
4
5
// include this file right before the data structures to be 1-aligned
6
// and add to each structure the PACK_STRUCT define just like this:
7
// struct mystruct
8
// {
9
// ...
10
// } PACK_STRUCT;
11
// Always include the irrunpack.h file right after the last type declared
12
// like this, and do not put any other types with different alignment
13
// in between!
14
15
// byte-align structures
16
#if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__)
17
# pragma warning(disable: 4103)
18
# pragma pack(push, packing)
19
# pragma pack(1)
20
# define PACK_STRUCT
21
#elif defined(__DMC__)
22
# pragma pack(push, 1)
23
# define PACK_STRUCT
24
#elif defined(__GNUC__)
25
// Using pragma pack might work with earlier gcc versions already, but
26
// it started to be necessary with gcc 4.7 on mingw unless compiled with -mno-ms-bitfields.
27
// And I found some hints on the web that older gcc versions on the other hand had sometimes
28
// trouble with pragma pack while they worked with __attribute__((packed)).
29
# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))
30
# pragma pack(push, packing)
31
# pragma pack(1)
32
# define PACK_STRUCT
33
# else
34
# define PACK_STRUCT __attribute__((packed))
35
#endif
36
#else
37
# error compiler not supported
38
#endif
39
library
include
irrpack.h
Generated by
1.8.17