extern unsigned long asma(unsigned long a); unsigned long asma_ref(unsigned long l) { unsigned long r; unsigned char *s = (unsigned char *)&l; unsigned char *t = (unsigned char *)&r; int i; for (i=0; i='A' && c<='Z') ? 'a'-'A' : 0; t[i] = c; } return r; } int main() { char test[]="0123456789abcdefghijklm\nnopqr\n\nstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ\0.""........"; unsigned long *pointer=(unsigned long *)test; int a; char *secondchar; char *firstchar; for(a=0;a<70;a++) { unsigned long bla1=asma(*pointer); unsigned long bla2=asma_ref(*pointer); if(bla1!=bla2) { printf("Testfall falsch, erwartet %li, tatsaechliches Ergebnis: %li\n",bla2,bla1); } secondchar=&test[1]; firstchar=&test[0]; memmove(firstchar,secondchar,75-a); } }