[an error occurred while processing this directive]
|
#include char __generic* p = params; // тут я терял первый указатель на p = va_arg(va, char __generic*); // а шел сюда //p = va_arg(va, char __generic*); // а потом делал вот так - это в va_end(va);
E-mail:
info@telesys.ru
__flash char fstr1[] = "123";
__flash char fstr2[] = "456";
char* str1 = "789";
char* str2 = "1011";
void Sendstr ( char __generic* params, ...)
{
va_list va;
va_start(va, params);
//1-й параметр !!!!
while (*p) {p++; }
while (*p) {p++; }
//мусор
//while (*p) {p++; }
}
void main ()
{
Sendstr(fstr1, (char __generic*)fstr2); // не было такого
//преобразования типов -
//поэтому второй параметр
Sendstr(str1, (char __generic*)str2); // запихивался в стек не
//как __generic(3 байта), а как
//обычнуй указатель(2 байта)
Sendstr(fstr1, (char __generic*)str1);
Sendstr(str1, (char __generic*)fstr1);
}
Ответы