Возможно я что-то недопонимаю или не знаю в C, посему возник такой вопрос:
Код
#include <stdio.h>
void SendString (const char _String[])
{
unsigned int i = 0;
while (_String[i] != '\0')
{
printf ("%c\n", _String[i]);
i++;
}
}
int main (void)
{
SendString ("LaLa");
return 0;
}
void SendString (const char _String[])
{
unsigned int i = 0;
while (_String[i] != '\0')
{
printf ("%c\n", _String[i]);
i++;
}
}
int main (void)
{
SendString ("LaLa");
return 0;
}
Прекрасно работает на i386.
Но ни одна из
Код
void SendString (const char _String[])
{
unsigned int i = 0;
while (_String[i] != '\0')
{
SendChar (_String[i]);
i++;
}
return;
}
void SendString2 (const char *_String)
{
while (*_String)
{
SendChar (*_String++);
}
}
...
SendString ("1234567890");
SendString2 ("1234567890");
...
{
unsigned int i = 0;
while (_String[i] != '\0')
{
SendChar (_String[i]);
i++;
}
return;
}
void SendString2 (const char *_String)
{
while (*_String)
{
SendChar (*_String++);
}
}
...
SendString ("1234567890");
SendString2 ("1234567890");
...
функций не работает - в функцию SendChar передаётся мусор.
Самостоятельный вызов SendChar ('a'); работает прекрасно.
Как нужно правильно передавать параметры на ATMega/AVR-GCC.