Автор Тема: линеен двусвързан списък  (Прочетена 5874 пъти)

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: линеен двусвързан списък
« Отговор #15 -: May 09, 2010, 22:03 »
Доколкото знам, в C++ main() трябва да връща int. Това че може да не връща нищо по принцип не е коректно и в C, но gcc го приема. Ама не знам според кой велик C стандарт това е така.

Така или иначе, освен streamed I/O-то, нищо друго от C++ не се ползва и е доста лесно това да се пренапише така че да се компилира с C компилатор.

Свързани списъци много лесно се реализират и не виждам какво толкова има да му се мисли. Тая програма трябва само да й се бутне структурата node така че да държи имена на ханове и години, а не само някаква int стойност. Съответно да се въвеждат дати и имена.

Активен

"Knowledge is power" - France is Bacon

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: линеен двусвързан списък
« Отговор #16 -: May 09, 2010, 22:06 »
@gat3 аз гледах само програмата да тръгне. Пуснах я изписука за cout и cin-а, аднах едно using namespace std, поле махнах h-а и накрая извика за че main-а трябва да връща int стойност, но извика защото я пуснах с gcc, като я пуснах със c++ file.cpp всичко тръгна. Но и аз като tyuio съм се чудил защо gcc и c++ ми правят такива въртели при компилация.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: линеен двусвързан списък
« Отговор #17 -: May 09, 2010, 22:33 »
Сигурно е много учудващо защо трябва да връща int, при положение че никой не го интересува какво връща main(). Само че не е точно така. return X от main() е еквивалентно на exit(X) където и да било. Оттам идеята е че някой може и да се поинтересува от exit статуса, примерно ако някой bash скрипт иска да провери статуса от изпълнението на твоята програма, гледайки променливата $?. Та затова. Иначе не знам да има нещо друго, което да го налага.
Активен

"Knowledge is power" - France is Bacon

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: линеен двусвързан списък
« Отговор #18 -: May 09, 2010, 22:40 »
Значи все пак трябва да има return дори и main-а да е дефиниран както тука с void отпред? Питам в практиката как е.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: линеен двусвързан списък
« Отговор #19 -: May 09, 2010, 22:43 »
Не, ако е void няма как да има return, компилаторът ще те наплюе. Мм не знам какъв exit код връща когато е декларирано като void main(), предполагам винаги връща 0. Ама пак казвам, това е изгъзица на gcc, не е много следващо стандартите и няма гаранция че ще се държи така ако го компилираш с друг компилатор.
Активен

"Knowledge is power" - France is Bacon

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: линеен двусвързан списък
« Отговор #20 -: May 09, 2010, 22:48 »
Хммм.. вярно така се получи. int main() се компилира с и без return, а void-а не поиска. Мерси!
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

tyuio

  • Гост
Re: линеен двусвързан списък
« Отговор #21 -: May 09, 2010, 22:49 »
със сигурност го прави само гцц при мен има още 4 компилатора. Обаче защо при еднакъв компилатор на мен ми плюе грешка на него не?
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: линеен двусвързан списък
« Отговор #22 -: May 09, 2010, 22:52 »
tyuio чакай да проверя, че може в бързането да съм те излъгал без да искам. Аз гледах грешките и една по една ги отсранявах.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

tyuio

  • Гост
Re: линеен двусвързан списък
« Отговор #23 -: May 09, 2010, 22:53 »
Аз само за void  не проверих другите като ги видях щото са в началото на кода ми стана ядно че няма да стане.
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: линеен двусвързан списък
« Отговор #24 -: May 09, 2010, 22:57 »
@tyuio аз съм в грешка, от бързането и аз съм се заблудил. Значи, махам h-то, после добавам един using namespace std; и после void main() става на int mani(), с и без ретърн се компилира, но по думите на gat3way трябва да има return. Сори  ::)
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: линеен двусвързан списък
« Отговор #25 -: May 09, 2010, 23:01 »
Да бе, то не му пречи да няма return :) С -Wall трябва да изреве едно предупреждение за това, но пак ще се компилира.
Активен

"Knowledge is power" - France is Bacon

tyuio

  • Гост
Re: линеен двусвързан списък
« Отговор #26 -: May 09, 2010, 23:09 »
Уф, сички я ми университетски код дето го имам от упражнения е все за вижуъл студио 6. Накрая като направя нещо тука трябва да ходя на уин да го компилирам в .ехе за да видя дали работи. И накрая КУРсовата трябва да е в .ехе иначе майната ти, а всички компове в уинито са с двойно зареждане и убунту и си има гцц, нетбийнс на всеки ма не.
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: линеен двусвързан списък
« Отговор #27 -: May 09, 2010, 23:19 »
Код
GeSHi (C++):
  1. int _tmain(int argc, _TCHAR* argv[])
Честито, и при нас е така, само че ние сме с VS2008 и няма нито един компютър с линукс. Докато работех в университета имаше един Slackware, който ми беше сървъра, но сега са само на Win 2k3 server. Може да питаш да си пускаш линукса и да работиш на него :)
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

tyuio

  • Гост
Re: линеен двусвързан списък
« Отговор #28 -: May 09, 2010, 23:24 »
Ама то янма проблеми на упражненията аз съм си все на убунту щото съм свикнал и с нетбийн покрай php и С ама за курсова да я предадеш в Линукс изпълним не може. Е да ма може презентацията да е на формата на ОО.о  :D >:D
Активен

tyuio

  • Гост
Re: линеен двусвързан списък
« Отговор #29 -: May 09, 2010, 23:29 »
По темата: аз не разбрах какво искаше момчето?
Активен