Понедельник, 20.05.2024, 04:37
Информатика и ИКТ
Приветствую Вас Гость | RSS
Главная Регистрация Вход
Меню сайта

Yandex_tech

Хабр-news

mail_news

Rambler

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

oszone.net

IT-N-образование

Главная » 2020 » Ноябрь » 7 » Язык C. Функция с переменным числом параметров. Еще один вариант решения (va_arg)
15:12
Язык C. Функция с переменным числом параметров. Еще один вариант решения (va_arg)

Язык C. Функция с переменным числом параметров. Еще один вариант решения (va_arg)

Это третья статья по теме "Функции C с переменным числом параметров" (см. статья 1 и статья 2). Как было написано ранее, с переходом к 64-битовому программированию, перебирать параметры с помощью инкремента (перехода от одного параметра к другому в стеке) проблематично, ведь в стек помещаются только параметры, начиная с 7-ого, а шесть первых помещаются а регистры процессора. Соответственно во второй статье был предложен вариант использования ассемблерного модуля, который просматривает в начале регистры, а потом переходит к стеку (если известно количество параметров).

В действительности в C уже давно есть механизм правильной обработки функций с переменным числом параметров. Для 64-битовых систем он работает вполне корректно. Это макрос va_arg (см. программу main120.c). Он определен в stdarg.h. Ниже представлен пример его использования (переменной nm как раз и присваивается очередной параметр). Ну, в общем, довольно красиво. Трансляция программы осуществляется как обычно:

Просмотров: 343 | Добавил: niko | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск

Календарь
«  Ноябрь 2020  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
30

Форма входа

nixp.ru

OpenNet

Новые программы

SLO.ru

Погода
Яндекс.Погода

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Архив записей

    Copyright MyCorp © 2024