Vladimir Ljaschko (26.06.2007 17:39, просмотров: 1) ответил Evgeny_CD на Кто как борется с многоплатформенностью?
VC <> IAR AVR - один файл platform.h. Все равно есть неявные общие правила, поэтому все cpu.h есть смысл уложить в один файл. <code>
#ifndef __PLATFORM_H__
#define __PLATFORM_H__
#ifdef WIN32
#define PC
#pragma warning(disable: 4201)
#pragma warning(disable: 4214)
#pragma warning(disable: 4100)
#pragma warning(disable: 4706)
#else
#define AVR
#endif
#ifdef AVR
#include <iom128.h>
#include <intrinsics.h>
#include <pgmspace.h>
#define MEMBER_OFFSET(type,x) (uint)((char*)&((type*)0)->x - (char*)0)
#define PC_MSG(title, text)
#define BREAK()
#elif defined(PC)
#define __flash const
#define __no_init
#define __disable_interrupt()
#define __enable_interrupt()
#define __eeprom
#define PC_EEPROM
#define sprintf_P sprintf
#define sscanf_P sscanf
#define strcpy_P strcpy
#define strncpy_P strncpy
#define strcmp_P strcmp
#define MEMBER_OFFSET(type,x) (uint)(__w64 long)((int*)&((type*)0)->x)
void PC_MSG(char *pszTitle, char *pszText);
#define BREAK() __asm int 3;
#endif
#ifndef NULL
#define NULL ((void*)0)
#endif
#define COUNT_ELEMENTS(x) (sizeof(x) / sizeof(x[0]))
typedef unsigned char uchar;
typedef signed char schar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef void (*PROCEDURE)();
#endif
</code>