Pull to refresh

Comments 11

Её достоинство в том, что ей всё равно в каком текстовом редакторе вы пишите код

а это разве не достоинство любой утилиты форматирования?

Да. Вы правы. Исправил.

--Существует ли авто форматирование Си-кода, который принудительно и всегда выставляет аргументы функции в столбик?

а не пробовали использовать // ?
по крайней мере clang-format нормально это обрабатывает:

void func( //
    int a,
    int b
);

Благодарю, Вас. Не знал про такой трюк.

Это не то.

void func( //
    int a,
    int b
);


Надо вот так. Прямо под открывающейся скобкой чтобы аргументы начинались

//*************************************************************************************************
// @Function      GPIO_SetPinState()
//-------------------------------------------------------------------------------------------------
// @Description   Sets a new logic state of the specified digital input/output pin.
//-------------------------------------------------------------------------------------------------
// @Notes         None.
//-------------------------------------------------------------------------------------------------
// @ReturnValue   RESULT_OK     - function succeeded
//                RESULT_NOT_OK - function NOT succeeded
//-------------------------------------------------------------------------------------------------
// @Parameters    nPortNumber - port number
//                nPinNumber  - pin number
//                nLogicState - a new pin logical state: LOGIC_0 - sets logical 0
//                                                       LOGIC_1 - sets logical 1
//**************************************************************************************************
STD_RESULT GPIO_SetPinState(const U8 nPortNumber,
                            const U8 nPinNumber,
                            const U8 nLogicState)
{
    STD_RESULT nFuncResult = RESULT_OK;

    if (FALSE == GPIO_IsPortPinValid(nPortNumber,
                                     nPinNumber,
                                     GPIO_API_ID_SET_PIN_STATE))
    {
        nFuncResult = RESULT_NOT_OK;
    }
    else if ((GPIO_PIN_LOW != nLogicState) && (GPIO_PIN_HIGH != nLogicState))
    {
        nFuncResult = RESULT_NOT_OK;
        #if (ON == GPIO_DEVELOPMENT_ERROR_DETECTION)
        GPIO_REPORT_DEV_ERROR(GPIO_API_ID_SET_PIN_STATE,
                              DEV_ERROR_PARAM_2);
        #endif
    }
    else
    {
        if (GPIO_PIN_HIGH == nLogicState)
        {
            GPIO_pPorts[nPortNumber]->SCR.R |= ON << nPinNumber;
        }
        else
        {
            GPIO_pPorts[nPortNumber]->SCR.R |= ON << (nPinNumber + GPIO_PINS_QTY);
        }
    }
    return nFuncResult;
} // end of GPIO_SetPinState()

А не проще подстроиться под имеющиеся возможности утилит форматирования кода, чем искать что-то идеальное? Автоматическое выравниание убирает всю рутину и уже не надо думать что, где и как.

А не проще подстроиться под имеющиеся возможности утилит форматирования кода, чем искать что-то идеальное?

Вот именно что проще.
Просто на работе в НПП ИТЭЛМА заставляют писать код именно вот с такими
правилами
code-style.
Нельзя Просто Так Пойти и Купить Овцу
https://habr.com/ru/articles/837396/
Если хоть одно правило из 462-х нарушено, то коммит просто не принимают в на code review.

Существует ли утилита, которая в Си-коде автоматически делает ...

На ум приходит только makeheaders (в поиск забивать makeheaders fossil), но там подход совсем уж суровый - вам просто не нужно писать хеадеры, утилита сгенерит всё сама :)

Благодарю, Вас. Не знал про такую утилиту.

makeheaders fossil

Что-то никак не найти ее дистрибутив. Есть ли URL на exe для Win10?

Sign up to leave a comment.

Articles