i++ ist ok, ++i ist widerlich laugh

und "return i++;" ist eine absolute Todsünde.
Imho darf sowas einfach nicht kompilieren, weil es supereklig ist. Leider kompiliert es aber, und Lite-C ist genau an dieser Stelle übrigens buggy.

Warum dieser Schnipsel durchfällt:
Quote:

for(k = i-1; k<=i+1; k++)
{
for(l = j-1; l<=j+1; l++)
{
if(((k < 0)||(l<0)||(k>pow(2,pixelPower)-1)||(l>pow(2,pixelPower)-1))||((k == i)&&(l == j)))
{


- i zu benutzen wäre noch ok (i = Iterator), das versteht man einigermaßen. k und l muss mindestens ein Kommetnar dabeistehen was das eigentlich ist
- l<=j+1 schreibt man gefälligst als l < j + 2
- (k>pow(2,pixelPower)-1) geht auch gar nicht. da nimmt man eine zusätzliche lokale Variable: vPowPixel = pow(2,pixelPower) - 1; und kann dann deutlich leserlicher k > vPowPixel abprüfen
- Leerzeichen, um Himmels willen Leerzeichen zwischen Variablen und Operatoren!
- wenn sich && sowie || in einem if nicht vermeiden lässt (kommt durchaus vor), dann teilt man das wengistens nach Klammern gestaffelt über mehrere Zeilen auf:

Code:
vPowPixel = pow(2, pixelPower) - 1;
if(
 (k < 0) 
 || (l < 0) 
 || (k > vPowPixel ) 
 || (l > vPowPixel ) 
 || ((k == i) && (l == j))
)