LINUX.ORG.RU

[C] Возврат многочисленных параметров.


0

1

Чтобы облегчить себе заполнение одинаковых пар, создаю функцию, которая парсит строку параметра для заполнения пары значений:

parse_parameter(optarg, table_parameters.cols, table_parameters.rows);

Функция (для теста написал рыбу):

int parse_parameter(char *optargin, int *first, int *second)
{
 *first = 1;
 *second = 2;
 return 0;
}
ctabler.c: In function ‘check_parameters’:
ctabler.c:65:39: warning: passing argument 2 of ‘parse_parameter’ makes pointer from integer without a cast [enabled by default]
ctabler.c:47:5: note: expected ‘int *’ but argument is of type ‘int’
ctabler.c:65:39: warning: passing argument 3 of ‘parse_parameter’ makes pointer from integer without a cast [enabled by default]
ctabler.c:47:5: note: expected ‘int *’ but argument is of type ‘int’

Научите, а?

Передавать в функцию надо указатели, а ты передаёшь инты.

PolarFox ★★★★★ ()

Вызов должен быть таким:

parse_parameter( optarg, &(table_parameters.cols), &(table_parameters.rows) );

У точки приоритет выше, если не путаю.

DeVliegendeHollander ★★ ()
Ответ на: комментарий от DeVliegendeHollander

Спасибо большое.

Все, сегодня больше не надоедаю.

AlexCones ★★★ ()
Ответ на: комментарий от DeVliegendeHollander

У точки приоритет выше, если не путаю.

Тогда зачем скобки?

Deleted ()
Ответ на: комментарий от Deleted

На всякий случай. Я же там написал «если не путаю». :) А со скобками работать правильно будет в любом случае.

DeVliegendeHollander ★★ ()
Ответ на: комментарий от DeVliegendeHollander

На всякий случай.

А выражение вида (&a).b не может быть валидным, так что бояться нечего :)

const86 ★★★★★ ()
Ответ на: комментарий от const86

Ну, виноват, виноват...

Просто сработала древняя привычка: «если сомневаешься или не помнишь точно, то используй скобки - хуже точно не будет». :)

DeVliegendeHollander ★★ ()
Ответ на: комментарий от Virtuos86

Ну «отчаяния» или «не отчаяния» - это не мне судить. Называй, как хочешь, главное, чтобы полезно было. Когда-то давно я прочитал процитированный выше совет и стал им пользоваться. Ни разу не подвёл.

DeVliegendeHollander ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.