C: Каков наилучший способ изменить указатель int, передаваемый через typedef? - PullRequest
1 голос
/ 12 февраля 2009

У меня есть typedef int my_type, и у меня есть функция, которая выглядит как

void my_func (my_type* x);

Как мне использовать эту функцию для модификации x, используя лучшие практики?

Ответы [ 4 ]

10 голосов
/ 12 февраля 2009

Вы можете использовать оператор разыменования '*' в вашей функции:

void my_func (my_type* x)
{
  assert(x); // To protect from NULL pointer as mentioned in com.

  *x = 5; //for example
}
2 голосов
/ 12 февраля 2009

Если вы используете typedef, вы в основном создаете новый тип. Как и во всех других типах, просто используйте тип, как и любой другой. Просто убедитесь, что вы согласны с типизированным - если вы используете my_type для переменной, используйте ее везде для этой переменной. Если вы передаете этот тип функции, используйте этот тип в функции, даже если вы знаете, что тип просто int. И так далее ...

1 голос
/ 15 февраля 2009

Используйте оператор * для разыменования x!

1 голос
/ 12 февраля 2009

Если вы хотите изменить по назначению, используйте ответ Клаферри. Если вы хотите изменить член (если my_type - это структура), выполните:

void my_func(my_type* x) {
  x->member = 5;
}
...