Меню сайта
Ваш профиль
Прохожий

Сообщения:

Группа:
Гости
Время:09:56

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!
Последние темы
Чат
200
Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0


Посетители за сегодня:
Главная » Статьи » Мои статьи

Добавление собственных Native функций Часть 2
Теперь перед вами раскрываются достаточно широкие горизонты. Вот лишь несколько примеров:

1) Быстрая конвертация строки типа "A001" в целое число и обратно:

jInt jNATIVE String2RawCode(jString input)
{
const char *str = jStrGet(input);
if (strlen(str) == 1)
return str[0];
else if (strlen(str) == 4)
{
char newstr[4];
newstr[0] = str[3];
newstr[1] = str[2];
newstr[2] = str[1];
newstr[3] = str[0];
return *((jInt*)newstr);
}
return 0;
}

jString jNATIVE RawCode2String(jInt input)
{
char *str = (char*)&input;
char newstr[5];
if (input < 255)
{
newstr[0] = str[0];
newstr[1] = '\0';
}
else
{
newstr[0] = str[3];
newstr[1] = str[2];
newstr[2] = str[1];
newstr[3] = str[0];
newstr[4] = '\0';
}
return jStrMap(newstr);
}

2) Динамически аллоцируемый массив

jInt jNATIVE ArrayAlloc(jInt len)
{
return (jInt)malloc(sizeof(jInt)*len);
}

jInt jNATIVE ArraySet(jInt array,jInt index,jInt val)
{
int *p = (int *)array;
p[index] = val;
return p[index];
}

jInt jNATIVE ArrayGet(jInt array, jInt index)
{
int *p = (int *) array;
return p[index];
}

jInt jNATIVE ArrayFree(jInt array)
{
int *p = (int *)array;
free(p);
return 0;
}

И так далее.

Категория: Мои статьи | Добавил: Guard (25.07.2010)
Просмотров: 297 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Все права защищены 2025. Полное или частичное использование материалов сайта возможно только с ссылкой на источник.