|
Тема |
Re: защо "абвгз" е char*, а не const char*? [re: Colombino] |
|
Автор |
пopyчиkPжeвckий (същият) |
|
Публикувано | 19.01.10 21:08 |
|
|
Глей са.... естествено, че алегоризирам и хиперболизирам с горното си изказване, което не пречи в него да има и известно количество истина, по скъпа от.... да кажем малка торбичка злато.
Има същински константи наистина, които може да са в РОМ-а, само дето напоследъка РОМ почти няма - има ФЛАШ и ЕЕПРОМ. Което донякъде подсказва нещо относно същинските константи.
Като се замисля, същински константи (истински такива) са май само физичните. Ама и за тях кой знае какви ще са в една друга вселена нали?
Примерно (в нашата вселена) Пи е константа, която е 3.14156271 и прочие, помня го наизуст само до тук. И естествено е много по лесно да ползваш Пи в кода, вместо да пишеш дълга поредица от цифри.
Константи се декларират даже в асемблер - просто е по-удобно.
Виж, това, че ако дадена константа е в РОМ, а не в РАМ се пести РАМ, не е задължително да е вярно.
Друг е въпросът за ползата от дадено нещо в даден език.
Обикновено (най-често) ползите можем да ги изброим по-надолу (може и да пропускам някоя)
Ползваме дадено нещо защото кодът става:
- по-четлив
- по-лесен за писане
- по-бърз
- по-кратък
- по-сигурен
- щото тъй ни харесва (естествено)
Същотото би могло да се каже и за нещата, които не ползваме. Примерно не ползваме ГОТО щото кода става на спагети, има повишен риск за грешки и прочие и прочие. Само че, ако отворим после машинния код на нашето изкомпилирано липсване на ГОТО ще открием безусловни преходи - ами просто не може без тях в някои случаи. Ако можеше, нямаше да го има като код в процесора.
И тъй, константи ползваме (в кода, не в РОМ-а) защото кодът е:
- по-четлив
- по-лесен за писане
- по-сигурен
- по-бърз (тук става въпрос специално за случаите, когато компилаторът поставя константата като операнд на кода, а не пише код да я извлича от нейде другаде, било то РОМ или РАМ)
- по-кратък (пак горното)
(Точно заради последните две дадох ония примери с непосредствено зареждане на регистър.)
Ето, Зейфод примерно си е намерил личната полза от константния чар в дадения случай и то много добре обоснована полза.
Изобщо, константата е хубаво нещо и ползуването й - тоже. Аз не съм против константите. И в интерес на истината се научих да ги използвам именно когато почнах да ставам нещо като програмист, т.е. това дето си писал за слабите програмисти е апцелютно вярно. Но да се фърляме на някакви безкрайно строги уговорки и правила, доведени до крайности пак е грешка ИМХО, като всяка една крайност.
Изобще - "Дело тонкое Петруха", както се казваше в един любим филм.
|
| |
защо "абвгз" е char*, а не const char*?
|
zaphod
| 13.01.10 16:33 |
Re: защо "абвгз" е char*, а не const char*?
| portal
| 13.01.10 16:50 |
Re: защо "абвгз" е char*, а не const char*?
| Pekoнcтpykтop
| 13.01.10 17:16 |
Re: защо "абвгз" е char*, а не const char*?
| Om_
| 13.01.10 17:38 |
Re: защо "абвгз" е char*, а не const char*?
| Pekoнcтpykтop
| 14.01.10 12:31 |
Re: защо "абвгз" е char*, а не const char*?
| zaphod
| 14.01.10 13:29 |
Re: защо "абвгз" е char*, а не const char*?
| ~@!$^%*amp;()_+
| 14.01.10 18:06 |
Re: защо "абвгз" е char*, а не const char*?
| Cин Mapмoт
| 14.01.10 22:19 |
Re: защо "абвгз" е char*, а не const char*?
| ~@!$^%*amp;()_+
| 14.01.10 23:21 |
Re: защо "абвгз" е char*, а не const char*?
| zaphod
| 15.01.10 08:32 |
Re: защо "абвгз" е char*, а не const char*?
| ak_47
| 15.01.10 10:10 |
Re: защо "абвгз" е char*, а не const char*?
| ~@!$^%*amp;()_+
| 15.01.10 18:01 |
Re: защо "абвгз" е char*, а не const char*?
| Eвлaмпи Пoпдимитpoв
| 16.01.10 00:05 |
Re: защо "абвгз" е char*, а не const char*?
| zaphod
| 16.01.10 09:08 |
Re: защо "абвгз" е char*, а не const char*?
| Pekoнcтpykтop
| 16.01.10 13:46 |
Re: защо "абвгз" е char*, а не const char*?
| derlustigehase
| 16.01.10 18:08 |
Re: защо "абвгз" е char*, а не const char*?
| zaphod
| 17.01.10 09:23 |
Re: защо "абвгз" е char*, а не const char*?
| Eвлaмпи Пoпдимитpoв
| 17.01.10 00:10 |
Re: защо "абвгз" е char*, а не const char*?
| zaphod
| 17.01.10 09:20 |
Re: защо "абвгз" е char*, а не const char*?
| derlustigehase
| 04.03.10 10:58 |
Re: защо "абвгз" е char*, а не const char*?
| SoulDeaD
| 10.03.10 13:09 |
Re: защо "абвгз" е char*, а не const char*?
| пopyчиkPжeвckий
| 19.01.10 17:31 |
Re: защо "абвгз" е char*, а не const char*?
| Colombino
| 19.01.10 18:35 |
Re: защо "абвгз" е char*, а не const char*?
| пopyчиkPжeвckий
| 19.01.10 21:08 |
Re: защо "абвгз" е char*, а не const char*?
| Tony Stewart
| 19.01.10 21:43 |
Re: защо "абвгз" е char*, а не const char*?
| пopyчиkPжeвckий
| 19.01.10 21:49 |
Re: защо "абвгз" е char*, а не const char*?
| zaphod
| 19.01.10 18:45 |
Re: защо "абвгз" е char*, а не const char*?
| пopyчиkPжeвckий
| 19.01.10 21:09 |
Re: защо "абвгз" е char*, а не const char*?
| Eвлaмпи Пoпдимитpoв
| 20.01.10 00:24 |
Re: защо "абвгз" е char*, а не const char*?
| Cин Mapмoт
| 15.01.10 11:13 |
Re: защо "абвгз" е char*, а не const char*?
| Colombino
| 13.01.10 20:58 |
Re: защо "абвгз" е char*, а не const char*?
| portal
| 13.01.10 22:29 |
дори char[] не е
| zaphod
| 15.01.10 08:36 |
Re: дори char[] не е
| ~@!$^%*amp;()_+
| 16.01.10 20:33 |
Re: защо "абвгз" е char*, а не const char*?
| Eвлaмпи Пoпдимитpoв
| 14.01.10 00:09 |
Re: защо "абвгз" е char*, а не const char*?
| SoulDeaD
| 14.01.10 00:54 |
Re: защо "абвгз" е char*, а не const char*?
| Eвлaмпи Пoпдимитpoв
| 14.01.10 23:45 |
Re: защо "абвгз" е char*, а не const char*?
| Colombino
| 14.01.10 01:28 |
Re: защо "абвгз" е char*, а не const char*?
| zaphod
| 14.01.10 07:39 |
Re: защо "абвгз" е char*, а не const char*?
| ГHУCEH®ГHOM
| 14.01.10 13:36 |
Re: защо "абвгз" е char*, а не const char*?
| Eвлaмпи Пoпдимитpoв
| 14.01.10 23:39 |
Re: защо "абвгз" е char*, а не const char*?
| ~@!$^%*amp;()_+
| 14.01.10 23:49 |
Re: защо "абвгз" е char*, а не const char*?
| klapaucius
| 14.01.10 14:46 |
Re: защо "абвгз" е char*, а не const char*?
| lvailosp
| 09.04.10 17:51 |
Re: защо "абвгз" е char*, а не const char*?
| bhdz
| 09.04.10 20:34 |
Re: защо "абвгз" е char*, а не const char*?
| Pekoнcтpykтop
| 10.04.10 09:31 |
Re: защо "абвгз" е char*, а не const char*?
| zaphod
| 10.04.10 09:43 |
Re: защо "абвгз" е char*, а не const char*?
| Colombino
| 10.04.10 18:57 |
Re: защо "абвгз" е char*, а не const char*?
| lvailosp
| 12.04.10 12:15 |
Re: защо "абвгз" е char*, а не const char*?
| Pekoнcтpykтop
| 12.04.10 12:42 |
Re: защо "абвгз" е char*, а не const char*?
| lvailosp
| 12.04.10 14:15 |
Re: защо "абвгз" е char*, а не const char*?
| Pekoнcтpykтop
| 12.04.10 17:43 |
Re: защо "абвгз" е char*, а не const char*?
| Colombino
| 15.04.10 02:26 |
Re: защо "абвгз" е char*, а не const char*?
| zaphod
| 15.04.10 09:09 |
Re: защо "абвгз" е char*, а не const char*?
| Pekoнcтpykтop
| 15.04.10 09:17 |
Re: защо "абвгз" е char*, а не const char*?
| zaphod
| 15.04.10 10:21 |
|
|
|
|