# Shortest conditional to run a specific statement: C code golf

Currently I have the code (expanded for your benefit):

<number> != <number> ? printf("|\\"); : <number>;


The idea here, is to do this condition in the least number of characters. This is currently, roughly the same number of characters it would take to be doing the exact same thing using an if statement, due to the fact, that I am fulfilling the second argument of the ternary operator which does not need to be filled, it is simply filled, as otherwise the statement does not run. (the final number is really a variable).

Is there any possible way to do the same conditional but shorter? (in C)

if(x!=y)printf("foo\n");
x!=y?printf("foo\n"):0;
x==y||printf("foo\n");


Yes, you can save some characters with the ternary operator or with the shortcutting logic operators (&& and ||). All three of the above do the same thing. Which you can use depends on things like the return type of printf and whether you need the return value.

x-y&&printf("foo\n");