No, an "unclean" function is a function with side effects .
In other words, no matter how many times you call it, a pure function will affect nothing but its output.
For example, it is unclean , although it returns zero: foo
int x;
int foo() { x++; return 0; }
int bar() { return x; }
foo , bar().
printf , " " - , - ( ..).
, , .
printf , , , - ( - ). .
: ( , ), printf , getchar.:) , .