Устранить ошибку клиента библиотеки - C (СИ)
Формулировка задачи:
/home/user/Рабочий стол/Ubuntu One/Пример 2.c:64:14: ошибка: expected «=», «,», «;», «asm» or «__attribute__» before «.» token
Сравнивал с предыдущими кодами что без ошибок компилируются - ошибок какбы не должно быть. Отличие их в том что подчёркиваний "_" нет в другом коде в названиях функций, массивов и переменных, а тут его удаление не помогло.
/*
*
*
* Компиляция
* %d - путь к исходнику
* %f - имя исходника
* %e - имя объектного фалйла
* libMylib.so - имя библиотеки
*
* gcc "%d/%f.c"
* gcc "%d/%e.o" -L. -o -lfstdin "%d/libMylib.so"
*
*
*/
#include <stdio.h>
#include <stdlib.h>
/*Объявляю синоним типа функции*/
typedef char (*callback)(char);
/*Создаю и инициализирую структуру*/
struct Data
{
FILE *fp;
char *input;
/* На входе массив, содержащий элементов неболее максимального значения для числа типа
* unsigned short. 256х256 (65536).
*/
callback function_pointer;
}data_pointer;
/*Объявляю функции библиотеки*/
extern char network_work(struct Data data_pointer);
extern FILE *open_memory_file(char *fname);
char callback_function(char out) // Это функция обратного вызова
{
unsigned short i, n;
n = 0;
if (out == 0)
{
for(i = 0; i < 65536; i++)
{
if (data_pointer.input[i] == 18)
{
n++;
data_pointer.input[i] = data_pointer.input[i] + 1; // определяющая положительный
}
else // нейтральный
{
data_pointer.input[i] = data_pointer.input[i] - 1; // или отрицательный результат действия
}
}
printf(" %d /n", n);
}
return 0;
}
/*вношу в структуру указатель на функцию ил адрес, хер его знает*/
data_pointer.function_pointer = callback_function; //ВООООТ ТУТ ПАКОСТЬ С ОШИБКОЙ.
int main()
{/*вызываю библиотечную функцию создающю новый или открывающую имеющийся файл*/
if ((data_pointer.fp = open_memory_file("File.MyFIle")) == NULL)
return -1;
else
{/*и передаю данные на вход*/
network_work(data_pointer);
fclose(data_pointer.fp); // По окончании работы программы закрываю файл
}
return 0;
}Решение задачи: «Устранить ошибку клиента библиотеки»
textual
Листинг программы
for(i = 0; i < 65536; i++)