For all,
in Pelles C v8 there is not translation at compile time.
Test with:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
// char to UINT
#define CH2UINT(c) ((unsigned int)((unsigned char)(c)))
#define SDUMP6(s) (void)_tprintf(_T("%s: %x,%x,%x,%x,%x,%x\n"), #s, \
CH2UINT(s[0]), CH2UINT(s[1]), CH2UINT(s[2]), \
CH2UINT(s[3]), CH2UINT(s[4]), CH2UINT(s[5]))
char *s1 = "\xfa\xfb\xfc\xfd\xfe\xff";
char s2[] = {'\xfa','\xfb','\xfc','\xfd','\xfe','\xff'};
char s3[] = {0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff};
int _tmain(void)
{
SDUMP6(s1);
SDUMP6(s2);
SDUMP6(s3);
//note: don't use sizeof(s1) - s1 have zero-terminator
if (memcmp(s1,s2,sizeof(s2)) || memcmp(s2,s3,sizeof(s3)))
_tprintf(_T("Buffers are NOT equals!\n"));
return 0;
}
@beto