Ik probeer een stukje C code (geschreven voor BSD Unix) aan de praat te krijgen onder VC++. Nu gaat dat vrij aardig, alleen 1 regel kom ik niet uit:
Het gaat om die regel memmove.
Deze memmove was in de oorspronkelijke code OVBCOPY:
De complete code is te vinden in RFC 1144.
code:
1
2
3
4
5
6
| register unsigned char *cp;
if ((int) cp & 3) {
if (len > 0)
memmove((int) cp & ~3, cp, len);
cp = (unsigned char *) ((int) cp & ~3);
} |
Het gaat om die regel memmove.
Deze memmove was in de oorspronkelijke code OVBCOPY:
De compiler geeft de volgende foutmelding:The macro OVBCOPY(src, dst, amt) is used to copy when src and dst overlap (i.e., when doing the 4-byte alignment copy).
Eigenlijk snap ik de foutmelding wel, maar ik kan hem niet oplossen omdat ik niet weet wat de schrijver van de code bedoeld heeft met de betreffende regel. Misschien dat iemand dit ziet?error C2664: 'memmove' : cannot convert parameter 1 from 'int' to 'void *'.
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
De complete code is te vinden in RFC 1144.