Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как создать va_list для _vsntprintf ? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обработка исключений http://www.cyberforum.ru/cpp-beginners/thread22975.html
Как сделать обработку исключения так, чтобы, если, например, вводим количество координат больше, чем можно, программа предлагала, или выйти, или попробовать ввести ещё раз. Я пробовал с помощью...
C++ Лежит ли точка в круге и треугольнике Даны круг и треугольник на плоскости.Кординаты вводятся с клавиатуры.Даны кординаты точки. Узнать лежит ли точка в области пересечения 2ух фигур http://www.cyberforum.ru/cpp-beginners/thread22972.html
Чтобы звездочка бегала по краям экрана C++
Доброго времени суток, уважаемые программисты! Нужна помощь. Написал программу на Borland C++, которая заполняет экран ASCII символом * (звездочка), вся проблема в том что она заполняет экран от...
C++ надо программу, в которой задача состоит в том, чтобы найти точку на двумерной сетке
Точка, безусловно, определяется координатами. Сетка должна иметь определенный размер, например, от 100 до 100 меш. Программа должна в начале своей деятельности выбирать точку на сетке(случайно), и...
C++ Классы в Turbo C/Borland C http://www.cyberforum.ru/cpp-beginners/thread22951.html
Класс для объекта-вектора, что задается координатами концов. Создать операции сложения и отнимания. Можете написать как должен выглядеть этот класс?
C++ Сортировка массива структур Имеется массив структур, который необходимо отсортировать по числовому ключу. Я написал код, но он не работает, поэтому просьба указать на ошибку. #include <stdio.h> #include <stdlib.h> int... подробнее

Показать сообщение отдельно
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
11.02.2009, 16:54
Цитата Сообщение от alex63 Посмотреть сообщение
Как создать тип va_list ?
Какова структура списка va_list ?
Во всех примерах показано как обработать функцию с переменным кол-вом аргументов.
Но как создать самому тип va_list?
Подскажите кто знает?
Заранее благодарен.
Это не типы и не структуры,а всего лишь макросы. Их можно загуглить, чтобы увидеть,как именно они реализованы. Про автолисп я ничего не знаю,поэтому не уверен,что там такое возможно. На си это реализуется очень просто. Например, для cdecl функций параметры передаются справа налево. Допустим,в принтф передают три параметра. Стек будет выглядеть так:
...
АВ
АРГ1
АРГ2
АРГ3

Принтф определяет по первому параметру,сколько их еще в стеке. Адрес второго параметра вычисляется как адрес первого + sizeof(arg1). Этот самый sizeof определяется типом параметра,который, в свою очередь, определяется исходя из управляющих символов. Адрес третьего аргумента вычисляется точно также. Фактически, va_list всего лишь скрывает работу с адресами: все,что нужно знать - это что происходит со стеком при вызове функций.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru