Объявления переменной C после заголовка функции в определении

При чтении некоторого исходного кода FreeBSD (см. Строки radix.h 158-173), я нашел объявления переменных, которые следовали «заголовку функции» в определении.

Действительно ли это в ISO C (C99)? когда это должно быть сделано в производственном коде вместо простого объявления переменных внутри «заголовка функции»? Почему это делается здесь?

Я ссылаюсь на функцию, заголовок строки, которая выглядит так: int someFunction(int i, int b) {

Это похоже на стиль K & R (pre-ANSI). Я не думаю, что это действительно C99, но используют ли они C99? Joel

Я думаю, что вы имеете в виду «старомодный» метод ANS ANSI, объявляющий параметры в C. Это выглядело примерно так:

 int foo(a, b) int a, int b { /* ... */ } 

Это все еще может быть действительным на C99 и будет приниматься компиляторами для соображений обратной совместимости, но это должно считаться устаревшим / архаичным.

Er. Возможно, я не понимаю ваш вопрос, но i и b в этом fragmentе являются параметрами функции. Это не какой-то компактный способ объявления переменных внутри функции, например:

 int someFunction() { int i, b; 

Когда вы вызываете someFunction , вы передаете ему те аргументы:

 someFunction(1, 2); // `i` will be `1` and `b` `2` within `someFunction` 
  • Настройка переменных среды через launchd.conf больше не работает в OS X Yosemite / El Capitan / macOS Sierra?
  • В чем разница между «экземплярами» и «инициализированными»?
  • Разница между статическими и частными статическими переменными
  • Когда статические переменные уровня функции получаются / инициализированы?
  • Static vs функции / переменные classа в classах Swift?
  • Что касается локальной переменной, проходящей в streamе
  • C Программирование: список аргументов переадресации
  • Почему локальные переменные, включая примитивы, всегда инициализируются в Java?
  • Получение строк, распознаваемых как имена переменных в R
  • Нужно ли назначать строку переменной перед ее сопоставлением с другим?
  • Угловой - общий сервис между компонентами не работает
  • Давайте будем гением компьютера.