Отговори на тема  [ 62 мнения ]  Отиди на страница 1, 2, 3, 4, 5  Следваща
Фрагменти от С-то.... 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Фрагменти от С-то....
Та.....

Пиша си аз миналата седмица поредната функция от проекта. И ми трябва да нулирам една променлива. Обаче, вместо:

Код:
variable = 0;


съм цъкнал два пъти на '=' и съм написал:

Код:
variable == 0;


Съответно последва 2 часа чесане по главата и тнт. От компилатора ни вопъл, ни стон. Нито Error, нито Warning.

Според мен, това си е ситуация за Error, щото си е грешка от всякъде. Ама и на Warning бих се зарадвал. Пищи за всякакви други глупости дето няма смисъл, пък очевадните неща ги пропуска. Някой има ли идея що така, или "е така по стандарт". За IAR иде реч.


Вто Юни 14, 2011 11:29 am
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Дава си Warning.
Само че ако си компилирал веднъж ти дава Warning. Ако нищо не пипнеш по файла в който е съответния фрагмент и пак компилираш няма да ти даде. Затова ако искаш да видиш в целия проект всички Warnings то даващ да рекомпилира всичко и ще ги получиш.


Вто Юни 14, 2011 11:39 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Яну 31, 2006 11:11 pm
Мнения: 295
Местоположение: София
Мнение 
В такъв случай някои компилатори дават

Warninig: Code has no effect


Вто Юни 14, 2011 11:40 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
Тъй де, тествах го сега пак и го видях, че дава Warning когато си иска.
Няма ли начин да го накарам да ми дава Error?


Вто Юни 14, 2011 12:06 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
Nikola Kirov написа:
Ако нищо не пипнеш по файла в който е съответния фрагмент и пак компилираш няма да ти даде.


Има разлика между компилация на проект и файл. По принцип ние му викаме "компилиране", но на практика проектът се прави ("мейква"). Компилират се само сорс файлове.

Грешките от компилатора се появяват при всяка компилация. При повторно мейкване може да се спести компилацията на определени файлове, ако по тях и всички файлове от които зависят няма промени.


Вто Юни 14, 2011 12:17 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
relsys написа:
Тъй де, тествах го сега пак и го видях, че дава Warning когато си иска.
Няма ли начин да го накарам да ми дава Error?


Миро ти е обяснил защо дава Warning "когато си иска".

А дали може да ти дава Error за подобно нещо, трябва да преровиш документацията на съответния компилатор и ако може да активираш въпросния error level. Но според мен Warning за подобни неща е достатъчен, синтактичния запис си е съвсем в правилата на ANSI C, затова не го класифицира като грешка. Друг е въпроса, че няма да работи както ти очакваш. Затова и политиката е да се дава Warning.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Пон Юни 20, 2011 12:36 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
Цецо написа:
relsys написа:
Тъй де, тествах го сега пак и го видях, че дава Warning когато си иска.
Няма ли начин да го накарам да ми дава Error?


Миро ти е обяснил защо дава Warning "когато си иска".

А дали може да ти дава Error за подобно нещо, трябва да преровиш документацията на съответния компилатор и ако може да активираш въпросния error level. Но според мен Warning за подобни неща е достатъчен, синтактичния запис си е съвсем в правилата на ANSI C, затова не го класифицира като грешка. Друг е въпроса, че няма да работи както ти очакваш. Затова и политиката е да се дава Warning.


Да, те нещата са си сбъркани на ниво стандарт още....


Пон Юни 20, 2011 2:08 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение 
Kак пък хората от 30 и кусур години ползват този език, пък ти сега в момент на проблясък(или илюминиране по новому)
реши че е сбъркано още на ниво стандарт :?:
това че си го написал грешно не те оправдава със постановката сбъркан стандарт....
Ако вместо да се стремим да пишем с по-малко грешки , обвиняваме други....
работата отива на:
...инж. Ганев от отбора на ТНТМ получил главен приз за реализирана поредица от различни по дължина къси съединения :)
същия отбор с космическия апарат дет, само вратата му заяжда и не се отваря иначе всичко му е наред...

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Пон Юни 20, 2011 3:10 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
MYXATA написа:
....


Така е, Мухата, ама няма друг език, който да ти позволи да пишеш глупости и въпреки това да ти генерира там какъвто изходен формат му е зададен.
Това си е синтактична грешка, и точно на компилатора му е работата да я хване и да спре дотам и също така да ти минимизира възможността от допускане на такива. Колкото повече ограничения - толкова по-добре.


Пон Юни 20, 2011 3:35 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение 
Цитат:
ама няма друг език

На колко точно езика можеш да програмираш като хората :? ?


Пон Юни 20, 2011 3:53 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение 
MYXATA написа:
...инж. Ганев от отбора на ТНТМ получил главен приз за реализирана поредица от различни по дължина къси съединения :)

И класиката - инж. Маринов спечелил международното състезание за най-късо съединение.


Пон Юни 20, 2011 4:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение 
Woody,
сега зачетох алманаха на ТНТМ-то :)
мисля че приза на инж.Маринов беше за най-дълго късо съединение :lol: но може би греша :)

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Пон Юни 20, 2011 4:40 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
Dimitar написа:
Цитат:
ама няма друг език

На колко точно езика можеш да програмираш като хората :? ?


Аз да програмирам мога. Ама като "хората" само на С....


Пон Юни 20, 2011 5:10 pm
Профил ICQ WWW
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 01, 2009 8:50 am
Мнения: 125
Местоположение: Varna
Мнение 
Не че искам да ви се меся...

Ама variable == 0; това си е напълно законен и разбираем за C синтаксис, за това си нямал лорнинги..

Ако в условни скоби с някакъв условен оператор if, while (variable = 0) направиш туй ще получиш лорнинг "присвояване на стойност в условен блок" да ама кода ще се компилира..

Синтактичните грешки се оправят за минути, ама логическите отнемат години.. :lol: :lol: :lol:

_________________
http://truna.freehosting.bg/
форум за механици..
"Любителска електроника" не означава скапана а означава с много любов правена..

Ако можеше да се съберат техническият отдел на atmel и маркетинговият отдел на microchip, ще се получи нещо велико.


Пон Юни 20, 2011 8:04 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Фев 06, 2007 2:45 am
Мнения: 263
Мнение 
Затова: константите отляво. Пропуснеш ли едното '=' -> тряс! и спестяваш следващите 2 часа.
Отначало ми изглеждаше извратено, но после се оказа доста удобно. Особено в случая:
Код:
if (OK == FunctionWithManyParameters(param1, param2, ... paramN))
{
    // Do something
}


За мен така е 100 пъти по-четливо.


Пон Юни 20, 2011 8:27 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 62 мнения ]  Отиди на страница 1, 2, 3, 4, 5  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни