2015-03-20 3 views

ответ

-1

Пункт 1.(gtkWidget *window, *button1) в качестве списка параметров следует читать (gtkWidget *window, gtkWidget *button1). Вам не хватало тип для второй переменной.

Пункт 2. В чем цель определения этих двух переменных еще раз локально внутри вашей функции? Это не требуется, ИМО.


EDIT:

Как вы изменили определение функции, чтобы вернуть int, вы, чтобы добавить return <some integer value> заявление тоже. В противном случае, если используется возвращаемое значение этой функции, которое будет вызывать undefined behaviour.

Из стандартного документа C11, глава 6.9.1, пункт 12,

Если}, что завершает функцию достигается, а значение вызова функции используется вызывающего абонента, поведение не определено.

+0

.... и причина для downvote? –

0

Компилятор не понимает тип второго аргумента

void record(gtkWidget *window, *button1) 

должно быть

void record(gtkWidget *window, gtkWidget *button1) 

если button1 того же типа, как window (это также gtkWidget *?).

и локальные переменные, объявлены как

gtkWidget *window, *button1; 

должны быть удалены или переименованы, чтобы не скрыть объем аргументов функции в

EDIT:

После того, как вы изменили функцию

int record(void) 

Обратите внимание на возвращаемое значение вашей функции. Где находится return с int значением?

+0

спасибо, теперь говорят, что gtk_container не объявлен в этой области. Я не уверен, почему, поскольку это первый случай, когда это произошло – user2956865

+0

, если вы не получили значения как значения аргументов 'window' и' button1' не инициализированы перед запуском 'gtk_container_remove' - все в порядке? - Я так не думаю ... И как используется 'gpointer' в функции? – VolAnd

+0

не уверен, почему gpointer - это то, что я не использую, и если я не инициализирую их, я получаю также и ошибку для них. – user2956865

Смежные вопросы