Форматирование кода в стиле Astyle

#c #linux #coding-style #astyle

#c #linux #стиль кодирования #астиль #astyle

Вопрос:

Я пишу модуль ядра Linux и пытаюсь использовать astyle, чтобы помочь мне следовать стандарту кодирования. Кажется, что это неправильно форматирует spi_driver структуру, и мне интересно, знает ли кто-нибудь почему. Это код перед передачей в astyle (с помощью команды astyle --style=linux lightmod.c ):

 static struct spi_driver light_driver = {
    .driver = {
            .name = "light",
            .owner = THIS_MODULE,
    },
    .probe = light_probe,
    .remove = __devexit_p(light_remove),
};
  

И это результат:

 static struct spi_driver light_driver = {
    .driver = {
            .name = "light",
            .owner = THIS_MODULE,
    },
    .probe = light_probe,
             .remove = __devexit_p(light_remove),
               };
  

Почему отступ .remove такой? Кто-нибудь знает?

Комментарии:

1. Я взял на себя смелость добавить [astyle] тег и ссылку. Пожалуйста, убедитесь, что я ссылался на правильную вещь. 🙂

2. Если в вашем коде используются табуляции, возможно, вам захочется заменить их пробелами перед использованием astyle. Или, может быть, в astyle есть опция, позволяющая ему быть в курсе вкладок.

3. в моем коде действительно используются пробелы, а не табуляции; так что дело не в этом. кроме того, ссылка правильная, спасибо.

4. Какая версия astyle? 1.24 выполняет работу лучше, но все еще не на 100%.

Ответ №1:

Я не думаю, что для этого есть глубокая причина. Кажется, что Astyle просто не может правильно обрабатывать назначенные инициализаторы C99. Если вы используете инициализаторы старого стиля, они отлично форматируются.

Комментарии:

1. Это все еще актуально в 2017 году.