Я всегда использую файл Common.h
, который почти никогда не изменяется и содержит определения, которые, скорее всего, понадобятся практически во всех файлах. Я думаю, что это повышает производительность, так что вам не нужно открывать другой файл .cpp и копировать список всех заголовков, которые вам наверняка понадобятся.
Например, вот две выдержки из моего Common.h:
typedef unsigned char uint8;
typedef signed char int8;
typedef unsigned char uint08;
typedef signed char int08;
typedef unsigned short uint16;
typedef signed short int16;
typedef unsigned int uint32;
typedef signed int int32;
typedef unsigned long long uint64;
typedef signed long long int64;
typedef const char cchar;
typedef const bool cbool;
typedef char Byte;
#ifdef ASSERT
/* Re-defining assert */
#undef ASSERT
#endif
#ifdef DEBUG
#ifndef ASSERTIONS
#define ASSERTIONS
#endif
#endif
#define ASSERT_ALWAYS(Expression) if (!(Expression)) FatalError(ErrorInfo("Assertion Failure", #Expression, FUNCTION_NAME, __FILE__, __LINE__))
#ifdef ASSERTIONS
#ifdef DEBUG
#define ASSERT(Expression) ASSERT_ALWAYS(Expression)
#else
#define ASSERT(Expression) if (!(Expression)) ErrorLog("[Release Assertions]: The following assertion failed: " # Expression)
#endif
#else
#define ASSERT(Expression)
#endif