Hallo Sebastian!
die erste Warnung ist wohl klar, oder ?
Warum braucht der Compiler denn eine Leerzeile? ;o)
Nagut, das ist jetzt geklärt!

und für die zweite,postest Du am besten Dein Programm.
Das ist von http://www.kreatives-chaos.com/index.php?seite=avr_b .
Möchte der Compiler, dass ich dem Markierten (>>> unsigned char i; <<<) erst einen Wert zuweise, oder einfach nur, dass ich es hinter das Init(); stelle?

Code:
#include <avr/io.h>

#define SYSCLK 7372800

void init(void);
void delay_ms(unsigned int ms);

int main(void)
{
	>>> unsigned char i; <<<	

	init();	
	
	// Endlosschleife
	while (1)

	{
		PORTB = i;
		i++;
		
		delay_ms(1000);
	}	

	return 0;
}

// Initialisierung
void init(void)
{
	DDRB = 0xff;	// PortB als Ausgang deklarieren
	PORTB = 0x00;	// Ports auf LOW schalten
}

// Delay Routine
void delay_ms(unsigned int ms)
{
	unsigned int zaehler;
	
	while (ms)
	{
		zaehler = SYSCLK / 5000;
		
		while (zaehler)
		{
			asm volatile ("nop");
			zaehler--;
		}
		ms--;
	}
}