| Автор |
Съобщение |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Фрагменти от С-то....
Та.....
Пиша си аз миналата седмица поредната функция от проекта. И ми трябва да нулирам една променлива. Обаче, вместо:
съм цъкнал два пъти на '=' и съм написал:
Съответно последва 2 часа чесане по главата и тнт. От компилатора ни вопъл, ни стон. Нито Error, нито Warning.
Според мен, това си е ситуация за Error, щото си е грешка от всякъде. Ама и на Warning бих се зарадвал. Пищи за всякакви други глупости дето няма смисъл, пък очевадните неща ги пропуска. Някой има ли идея що така, или "е така по стандарт". За IAR иде реч.
|
| Вто Юни 14, 2011 11:29 am |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Дава си Warning.
Само че ако си компилирал веднъж ти дава Warning. Ако нищо не пипнеш по файла в който е съответния фрагмент и пак компилираш няма да ти даде. Затова ако искаш да видиш в целия проект всички Warnings то даващ да рекомпилира всичко и ще ги получиш.
|
| Вто Юни 14, 2011 11:39 am |
|
 |
|
bobyper
Ранг: Ориентиран
Регистриран на: Вто Яну 31, 2006 11:11 pm Мнения: 295 Местоположение: София
|
В такъв случай някои компилатори дават
Warninig: Code has no effect
|
| Вто Юни 14, 2011 11:40 am |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
Тъй де, тествах го сега пак и го видях, че дава Warning когато си иска.
Няма ли начин да го накарам да ми дава Error?
|
| Вто Юни 14, 2011 12:06 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Има разлика между компилация на проект и файл. По принцип ние му викаме "компилиране", но на практика проектът се прави ("мейква"). Компилират се само сорс файлове.
Грешките от компилатора се появяват при всяка компилация. При повторно мейкване може да се спести компилацията на определени файлове, ако по тях и всички файлове от които зависят няма промени.
|
| Вто Юни 14, 2011 12:17 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Миро ти е обяснил защо дава Warning "когато си иска".
А дали може да ти дава Error за подобно нещо, трябва да преровиш документацията на съответния компилатор и ако може да активираш въпросния error level. Но според мен Warning за подобни неща е достатъчен, синтактичния запис си е съвсем в правилата на ANSI C, затова не го класифицира като грешка. Друг е въпроса, че няма да работи както ти очакваш. Затова и политиката е да се дава Warning.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Юни 20, 2011 12:36 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
Да, те нещата са си сбъркани на ниво стандарт още....
|
| Пон Юни 20, 2011 2:08 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
Kак пък хората от 30 и кусур години ползват този език, пък ти сега в момент на проблясък(или илюминиране по новому)
реши че е сбъркано още на ниво стандарт
това че си го написал грешно не те оправдава със постановката сбъркан стандарт....
Ако вместо да се стремим да пишем с по-малко грешки , обвиняваме други....
работата отива на:
...инж. Ганев от отбора на ТНТМ получил главен приз за реализирана поредица от различни по дължина къси съединения
същия отбор с космическия апарат дет, само вратата му заяжда и не се отваря иначе всичко му е наред...
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Пон Юни 20, 2011 3:10 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
Така е, Мухата, ама няма друг език, който да ти позволи да пишеш глупости и въпреки това да ти генерира там какъвто изходен формат му е зададен.
Това си е синтактична грешка, и точно на компилатора му е работата да я хване и да спре дотам и също така да ти минимизира възможността от допускане на такива. Колкото повече ограничения - толкова по-добре.
|
| Пон Юни 20, 2011 3:35 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
На колко точно езика можеш да програмираш като хората  ?
|
| Пон Юни 20, 2011 3:53 pm |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
И класиката - инж. Маринов спечелил международното състезание за най-късо съединение.
|
| Пон Юни 20, 2011 4:37 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
Woody,
сега зачетох алманаха на ТНТМ-то
мисля че приза на инж.Маринов беше за най-дълго късо съединение  но може би греша 
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Пон Юни 20, 2011 4:40 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
Аз да програмирам мога. Ама като "хората" само на С....
|
| Пон Юни 20, 2011 5:10 pm |
|
 |
|
traqn_savov
Ранг: Новодошъл
Регистриран на: Чет Окт 01, 2009 8:50 am Мнения: 125 Местоположение: Varna
|
Не че искам да ви се меся...
Ама variable == 0; това си е напълно законен и разбираем за C синтаксис, за това си нямал лорнинги..
Ако в условни скоби с някакъв условен оператор if, while (variable = 0) направиш туй ще получиш лорнинг "присвояване на стойност в условен блок" да ама кода ще се компилира..
Синтактичните грешки се оправят за минути, ама логическите отнемат години.. 
_________________http://truna.freehosting.bg/
форум за механици..
"Любителска електроника" не означава скапана а означава с много любов правена..
Ако можеше да се съберат техническият отдел на atmel и маркетинговият отдел на microchip, ще се получи нещо велико.
|
| Пон Юни 20, 2011 8:04 pm |
|
 |
|
tolstolob
Ранг: Ориентиран
Регистриран на: Вто Фев 06, 2007 2:45 am Мнения: 263
|
Затова: константите отляво. Пропуснеш ли едното '=' -> тряс! и спестяваш следващите 2 часа.
Отначало ми изглеждаше извратено, но после се оказа доста удобно. Особено в случая:
За мен така е 100 пъти по-четливо.
|
| Пон Юни 20, 2011 8:27 pm |
|
|