Оригинальный код:
if (expression1) statement1;
else statement2;
возможно ли превратить его в это?
expression1 ? statement1 : statement2
или это зависит от компилятора? кажется, что это отличается в рамках стандартов C ++?
Иногда бывает if (expression1) statement1;
, и как мне это преобразовать?
кстати, это можно сделать в ц.
Сделать исходный код нечитаемым - это именно то, что я пытаюсь сделать
Это только один из шагов
error: second operand to the conditional operator is of type 'void', but the third operand is neither a throw-expression nor of type 'void'
Это то, что я получил с g ++ (TDM-2 mingw32) 4.4.1 при компиляции
#include <stdio.h>
void _(int __, int ___, int ____, int _____)
{
((___ / __) <= _____) ? _(__,___+_____,____,_____) : !(___ % __) ? _(__,___+_____,___ % __, _____) :
((___ % __)==(___ / __) && !____) ? (printf("%d\n",(___ / __)),
_(__,___+_____,____,_____)) : ((___ % __) > _____ && (___ % __) < (___ / __)) ?
_(__,___+_____,____,_____ + !((___ / __) % (___ % __))) : (___ < __ * __) ?
_(__,___+_____,____,_____) : 0;
}
int main() {
_(100,0,0,1);
return 0;
}
и если я заменю последний 0 на throw 0
, он будет успешно скомпилирован.