Skip to content

Instantly share code, notes, and snippets.

@mrmign
Created April 11, 2013 08:20
Show Gist options
  • Save mrmign/5361673 to your computer and use it in GitHub Desktop.
Save mrmign/5361673 to your computer and use it in GitHub Desktop.
replacement of ifelse
#include <stdio.h>
#include <stdio.h>
int main(int argc, char const *argv[])
{
int f[3]={1,0,0};
int res = 0;
(f[0]>0) ?
((f[1]>0) ?
((f[2]>0)?(res=1):((f[2]<0)?(res=1<<1):(res=1<<2))) :
((f[1]<0)?
((f[2]>0)?(res=1<<3):((f[2]<0)?(res=1<<4):(res=1<<5))):
((f[2]>0)?(res=1<<6):((f[2]<0)?(res=1<<7):(res=1<<8))))) :
(
(f[0]<0)?
((f[1]>0) ?
((f[2]>0)?(res=1<<9):((f[2]<0)?(res=1<<10):(res=1<<11))) :
((f[1]<0)?
((f[2]>0)?(res=1<<12):((f[2]<0)?(res=1<<13):(res=1<<14))):
((f[2]>0)?(res=1<<15):((f[2]<0)?(res=1<<16):(res=1<<17))))) :
//f[0]=0
((f[1]>0) ?
((f[2]>0)?(res=1<<18):((f[2]<19)?(res=1<<20):(res=1<<21))) :
((f[1]<0)?
((f[2]>0)?(res=1<<22):((f[2]<0)?(res=1<<23):(res=1<<24))):
((f[2]>0)?(res=1<<25):((f[2]<0)?(res=1<<26):(res=1<<27))))));
printf("%#x\n",res);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment