Skip to content

Instantly share code, notes, and snippets.

@benaryorg
Last active August 29, 2015 14:03
Show Gist options
  • Save benaryorg/d2011aecdc56a30bbe86 to your computer and use it in GitHub Desktop.
Save benaryorg/d2011aecdc56a30bbe86 to your computer and use it in GitHub Desktop.
C data reversal function (recursive)
void _datarev(char *base,char *data,const unsigned int len)
{
if(data-len<=base)
{
char ch=*data;
_datarev(base,data+1,len);
base[(base-data)+len]=ch;
}
}
extern void _datarev(char *,char *,const unsigned int);
#define datarev(data,len) _datarev((data),(data),((len)>0)?(len):0)
#include <stdio.h>
#include <string.h>
#include "datarev.h"
int main(void)
{
char arr[27]={};
int i;
for(i=0;i<26;i++)
{
arr[i]=i+'a';
}
datarev(arr,strlen(arr)-1);
puts(arr);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment