Я читал файл заголовка C, содержащий прототипы функций API для конкретной операционной системы реального времени (RTOS), и заметил, что большинство функций объявлено следующим образом:
#define foo(arg_1, arg_2, ... arg_n) foo(arg_n, ... arg_2, arg_1)
То есть функции с 2 или более аргументами объявляются попарно, как показано, в котором порядок аргументов второй функции противоположен порядку первой функции.
Могу ли я знать, какова цельделать это?
Редактировать:
Я углубился в код и обнаружил, что этот заголовочный файл и некоторые другие заголовочные файлы содержат макросы для поддержки различных компиляторов C / C ++.В частности, соглашение о вызовах _pascal
вызывается, если используется компилятор Microsoft C / C ++.В этом случае функции API объявляются попарно, как указано в описании проблемы выше.
Я полагаю, что оба JeremyP и Frankie_C заслуживают похвалы за правильное угадывание цели,несмотря на отсутствие контекста.Ключевое слово «соглашение о вызовах» очень помогает мне и играет ключевую роль в моей попытке понять этот сегмент кода.