#include <vector>
#include <string>
#include <iostream>
#include <conio.h>
using namespace std;
void MyFunc (vector<string>);
int _tmain(int argc, _TCHAR* argv[])
{
vector<string>Params;
Params.push_back("first param;");
Params.push_back("second param;");
Params.push_back("third param;");
Params.push_back("fourth param;");
Params.push_back("fifth param;");
MyFunc(Params);
_getch();
return 0;
}
void MyFunc (vector<string>Params)
{
for (int i = 0; i < (int)Params.size(); i++)
cout<<Params.c_str()<<endl;
}
Можно ли передать переменное число параметров из однои функции в другую?
Например:
void vTest(char* cpFormat, ...)
{
printf("%s\r\n", cpFormat);
}
int main(void)
{
vTest("Test %s", "me");
return 0;
}
в данной ситуации результат будет "Test %s",
но можно ли получить "Test me" не используя va_start, .......
Цитата: vitaliks
Можно ли передать переменное число параметров из однои функции в другую?
но можно ли получить "Test me" не используя va_start, .......
но можно ли получить "Test me" не используя va_start, .......
Если говорить о C++, то по-хорошему не можно, а нужно.
Использование переменного числа параметров в C++ не есть хороший стиль.
Передавать "переменное число параметров" можно по-разному, все зависит от конкретной ситуации.
Например, можно просто использовать контейнер.
Цитата: Green
Если говорить о C++, то по-хорошему не можно, а нужно.
Использование переменного числа параметров в C++ не есть хороший стиль.
Передавать "переменное число параметров" можно по-разному, все зависит от конкретной ситуации.
Например, можно просто использовать контейнер.
Использование переменного числа параметров в C++ не есть хороший стиль.
Передавать "переменное число параметров" можно по-разному, все зависит от конкретной ситуации.
Например, можно просто использовать контейнер.
Меня интересует как это сделать по возможности не используя дополнительную память?
Цитата: vitaliks
Меня интересует как это сделать по возможности не используя дополнительную память?
А в чем проблема с памятью?
Разница при передаче параметров через стек или через контейнер это десятки байт.
Цитата: Green
А в чем проблема с памятью?
Разница при передаче параметров через стек или через контейнер это десятки байт.
Разница при передаче параметров через стек или через контейнер это десятки байт.
Если не очень тяжело, может приведи какой нибуть маленький примерчик :rolleyes:
Цитата: oxotnik333
Код:
#include <vector>
#include <string>
#include <iostream>
#include <conio.h>
using namespace std;
void MyFunc (vector<string>);
int _tmain(int argc, _TCHAR* argv[])
{
vector<string>Params;
Params.push_back("first param;");
Params.push_back("second param;");
Params.push_back("third param;");
Params.push_back("fourth param;");
Params.push_back("fifth param;");
MyFunc(Params);
_getch();
return 0;
}
void MyFunc (vector<string>Params)
{
for (int i = 0; i < (int)Params.size(); i++)
cout<<Params.c_str()<<endl;
}
#include <string>
#include <iostream>
#include <conio.h>
using namespace std;
void MyFunc (vector<string>);
int _tmain(int argc, _TCHAR* argv[])
{
vector<string>Params;
Params.push_back("first param;");
Params.push_back("second param;");
Params.push_back("third param;");
Params.push_back("fourth param;");
Params.push_back("fifth param;");
MyFunc(Params);
_getch();
return 0;
}
void MyFunc (vector<string>Params)
{
for (int i = 0; i < (int)Params.size(); i++)
cout<<Params.c_str()<<endl;
}
Sorry что сразу не написал, но меня интересует простой Си а не С++,
при этом это решение дожно использоватся на разных платформах.