@ spanky & wkrug: Wenn Ihr Euch selber nicht sicher seid, solltet Ihr nicht antworten. Das verunsichert doch nur...

1. Initialisierungen gehören nicht in eine Schleife.
2. Hinter eine geschweifte Klammer kommt niemals ein Semikolon
3. Das return 0; gehört immer ans Ende der main-Funktion hat aber nichts mit "wieder an den Anfang" springen zu tun.

Ein korrektes Programm sähe so aus:

Code:
#include <avr/io.h>

int main (void)

{
DDRA = 0x00; //PORTA als Eingang definieren (kann man sich aber auch schenken, da Standart-Einstellung)
DDRB = 0xFF; //PORTB als Ausgang definieren

for (;;) //Beginn der Endlosschleife
{

if (PINA & (1<<PINA7)) //Bedingung1
PORTC = (1<<PC0); //Alle LEDs ausser LED1 sollten leuchten

else
PORTC = (1<<PC1); //Alle LEDs ausser LED2 sollten leuchten

} //Ende der Endlosschleife

return 0;
}
PS: Ob man while(1) {} oder for(;;){} für die Endlosschleife verwendet, ist eigentlich egal. Laut einer Application Note von Atmel ist die for-Variante aber effektiver (warum auch immer).

Gruß,
askazo