struct STR{
int a;
int b;
};
STR MyFunct{
STR st;
st.a=0; st.b=1;
return st;
}
Упращенная запись
Код:
Можно ли написать функцию так чтобы не объявлять структуру?
Примерно так:
Код:
STR MyFunct{
return {STR::a=0,STR:b=1};
}
return {STR::a=0,STR:b=1};
}
Но это конечно не правильная запись.
Код:
struct STR *New_STR(int _a, int _b) {
static struct STR ret;
ret.a = _a;
ret.b = _b;
return &ret;
}
struct STR MyFunc() {
return *New_STR(0, 1);
}
static struct STR ret;
ret.a = _a;
ret.b = _b;
return &ret;
}
struct STR MyFunc() {
return *New_STR(0, 1);
}
Да да да... то что нужно) Спасибо агромное)
Код:
struct STR{
STR(){};
STR(int valuea,int valueb):a(valuea),b(valueb){}
int a;
int b;
};
STR MyFunct(){
return STR(0,1);
}
STR(){};
STR(int valuea,int valueb):a(valuea),b(valueb){}
int a;
int b;
};
STR MyFunct(){
return STR(0,1);
}
Ну это ж только если код компилируется как C++, а не pure-C. :)
Цитата: arrjj
Я б в конструкторе сделал:
Код:
struct STR{
STR(){};
STR(int valuea,int valueb):a(valuea),b(valueb){}
int a;
int b;
};
STR MyFunct(){
return STR(0,1);
}
STR(){};
STR(int valuea,int valueb):a(valuea),b(valueb){}
int a;
int b;
};
STR MyFunct(){
return STR(0,1);
}
Волшебство. И в прямь работает=) Спасибо.
Интересно что будет быстрей работать. С inline фукцией или с конструкотором.
Код:
struct RET{
int var;
float def;
};
inline RET *New_RET(int var, float def) {
static struct RET ret;
ret.var = var;
ret.def = def;
return &ret;
}
int var;
float def;
};
inline RET *New_RET(int var, float def) {
static struct RET ret;
ret.var = var;
ret.def = def;
return &ret;
}
Код:
struct RET{
RET(){};
RET(int var_,float def_):var(var_),def(def_){}
int var;
float def;
};
RET(){};
RET(int var_,float def_):var(var_),def(def_){}
int var;
float def;
};
Конструктор же по идее будет как отдельная функция.
Цитата: Alexander92
Ну это ж только если код компилируется как C++, а не pure-C. :)
Что есть то есть :)
Цитата: serpoverst
Конструктор же по идее будет как отдельная функция.
Конструктор тоже можно обьявить inline-ом ;)
Цитата: serpoverst
Конструктор же по идее будет как отдельная функция.
Вы как раз его и объявили как inline сейчас. :D