Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Упращенная запись

69K
02 сентября 2011 года
serpoverst
8 / / 30.06.2011
Добрового времени суток. Дапустим есть структура и функция.
 
Код:
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};
}

Но это конечно не правильная запись.
278
02 сентября 2011 года
Alexander92
1.1K / / 04.08.2008
Нельзя. Можно разве что только подогнать что-то такого типа:
 
Код:
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);
}
69K
02 сентября 2011 года
serpoverst
8 / / 30.06.2011
Да да да... то что нужно) Спасибо агромное)
277
02 сентября 2011 года
arrjj
1.7K / / 26.01.2011
Я б в конструкторе сделал:
 
Код:
struct STR{
    STR(){};
    STR(int valuea,int valueb):a(valuea),b(valueb){}
    int a;
    int b;
};
STR MyFunct(){
     return STR(0,1);
}
278
03 сентября 2011 года
Alexander92
1.1K / / 04.08.2008
Ну это ж только если код компилируется как C++, а не pure-C. :)
69K
03 сентября 2011 года
serpoverst
8 / / 30.06.2011
Цитата: arrjj
Я б в конструкторе сделал:
 
Код:
struct STR{
    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;
}


 
Код:
struct RET{
    RET(){};
    RET(int var_,float def_):var(var_),def(def_){}
    int var;
    float def;
};


Конструктор же по идее будет как отдельная функция.
277
03 сентября 2011 года
arrjj
1.7K / / 26.01.2011
Цитата: Alexander92
Ну это ж только если код компилируется как C++, а не pure-C. :)


Что есть то есть :)

Цитата: serpoverst

Конструктор же по идее будет как отдельная функция.


Конструктор тоже можно обьявить inline-ом ;)

278
03 сентября 2011 года
Alexander92
1.1K / / 04.08.2008
Цитата: serpoverst
Конструктор же по идее будет как отдельная функция.


Вы как раз его и объявили как inline сейчас. :D

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог