[cdev] ������ 4, 135��
Grigoriy A. Sitkarev
sitkarev �� komitex.ru
�� ��� 30 01:20:01 MSK 2010
�������.
����� ������� �������, ������������ ���-�� ������ � ������� - ���������
�� ���� ������. ��� ����� ������������ ������� ����� ���� ���� ������ -
�� ����������, ������� �������� � �������. ��� ����� ������������ �����
�������, ��������� ������� ������������� ���� parray_callback_t (��� ��
���������� ��� �������� � ���������) � ����� ������������
parray_foreach() �� ������. ��������� opaque ��������� �� ������������
������, ������� ������ ����� ���� �������� � callback (�������
������������) ��� ��������� ��������. �.�. ������� parray_foreach()
������� ��� �������� �������, ������������ ����� ��������������� ��
����� ������� � ��� ��� ����� ����� ���������, ������ �� ������� ��������.
��������, ������������ ����� �������� ���-��:
static int
print_user_data(void *data, void *opaque)
{
struct user_data *up = (struct user_data *) data;
float *flp = (float *) opaque;
printf("%f %d\n", *flp, up->age)
return 0;
}
������ ���-�� � ������ �����:
{
struct parray *pa;
float value;
...
value = 10.0;
parray_foreach(pa, print_user_data, &value);
...
}
����� � opaque �� �������� ����� ����������, � ������� �� ����� ������
�������� ������ ������ print_user_data - ��� ��� �������. � ��� ���
����� ���� ����� ���� ������, � ���� ���� ���� ��� ��� ������,
���������������� ������� ���� ������ �����������.
�� ����������, ��� �ӣ ����� �� ����. � ����� �������� ������, ģ������
callback, �������� ��� �� ������, ���� 0 �� ����������� ������ �����
���������� ����.
--
�.�.
������ ��������� �����:
> �������� �������������, � ��������� ��� ��� ��� ������ ������ ��� ������� � ������ 4(������ ����������)
>
> /* Traverse pointer array calling callback function for each element. */
> void *parray_foreach(struct parray *pa, parray_callback_t callback, void *opaque);
.
��������� ���������� � ������ �������� cdev