Здравствуйте.
Для более приятного кода решил распределить переменные и функции по static структурам:
/*...*/
static struct{
/*...*/
struct{
pthread_t tvideo;
pthread_t tsound;
void *(fvideo)(void *);
void *(fsound)(void *);
} multithreading;
/*...*/
} sys;
/*...*/
int main(int argc, char *argv[]){
/*...*/
pthread_create(&sys.multithreading.tvideo, NULL, *sys.multithreading.fvideo, NULL);
/*...*/
}
/*...*/
Доступ неограниченный, Структуры и функции в единичном экземпляре.
Необходимо объявить функцию sys.multithreading.fvideo.
В данный момент пока объявил функцию вне структуры:
/*...............*/
void *(fvideo)(void *arg){
/*...*/
}
/*...............*/
pthread_create(&sys.multithreading.tvideo, NULL, *fvideo, NULL);
/*...............*/
Данная функция использует структуру «sys» поэтому объявляться в самой структуре не хочет, не находит «sys».
/*...*/
static struct{
/*...*/
struct{
pthread_t tvideo;
pthread_t tsound;
void *(fvideo)(void *arg){
/*...*/
};
/*...............*/
/*CPP: error: ‘sys’ was not declared in this scope */
Объявление после структуры написать не удаётся.
/*...............*/
} sys;
void *(sys.multithreading.fvideo)(void *arg){
/*...*/
}
/*...............*/
/*CPP: error: expected ‘)’ before ‘.’ token*/
/*CPP: error: expected initializer before ‘.’ token*/
И дополнительно, какую мне почитать литературу, что-бы разбираться в смеси из указателей, функций и структур,
но
не руководство или учебник, а ближе к справочнику и технической документации.