реклама на сайте
подробности

 
 
> typedef struct на сообразительность
Огурцов
сообщение Oct 27 2017, 11:48
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



pls, сообразите за меня, как записать нечто такое:

Код
typedef struct
{
    void (*on_event)(my_struct * a_struct);
} my_struct;

void event_handler(my_struct * a_struct);


чтобы gcc не ругался
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Эдди
сообщение Oct 27 2017, 13:39
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Код
cat 1.c
#include <stdio.h>

typedef struct _my_struct{
    void (*on_event)(struct _my_struct * a_struct);
    char *eventarg;
} my_struct;

void parcearg(my_struct *s){
        printf("arg: %s\n", s->eventarg);
}

int main(int argc, char **argv){
        my_struct s = {parcearg, NULL};
        int i;
        for(i = 1; i < argc; ++i){
                s.eventarg = argv[i];
                s.on_event(&s);
        }
        return 0;
}

gcc 1.c -Wall -Werror -Wextra && ./a.out hello world
arg: hello
arg: world
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 27 2017, 14:23
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



в вашем варианте предупреждения о не соответствии типов должны быть, хотя работать будет, у меня сейчас так и работает

зы: был не прав, собирается без предупреждений, на самом деле предупреждение было на void


Сообщение отредактировал Огурцов - Oct 27 2017, 14:45
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 18:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016