Игнорировать выходные параметры в C - PullRequest
2 голосов
/ 27 марта 2020

У меня есть функция, которая возвращает некоторое значение и некоторые параметры:

uint8 myFunction(uint8* param1);

uint8 myFunction(uint8* param1)
{
    *param1 = 3;

    return 1;
}

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

uint8 a;
uint8 b;

a = myFunction(b);

...
...

и один раз, просто игнорируя параметр, например:

a = myFunction(void);

Как это сделать в C?

1 Ответ

4 голосов
/ 27 марта 2020

Я бы рекомендовал добавить проверку NULL перед разыменованием param1 - в любом случае это было бы целесообразно. Тогда вы можете просто передать NULL там, где хотите игнорировать его.

uint8 myFunction(uint8* param1)
{
    if (param1 != NULL)
    {
        *param1 = 3;
    }

    return 1;
}

вызывающий код может просто передать NULL:

a = myFunction(NULL);

Конечно, было бы хорошо задокументируйте это поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...