|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.04.2013, 16:43 | #1 |
Форумчанин
Регистрация: 23.05.2007
Сообщений: 151
|
Зачем у "TStringList" свойству "Count" иметь знаковый тип (Integer) ?
При сравнении с какой-либо положительной переменной (Cardinal-тип) в программе можно наблюдать ворнинг:
W1023 Comparing signed and unsigned types - widened both operands |
26.04.2013, 17:49 | #2 |
Форумчанин
Регистрация: 08.06.2011
Сообщений: 693
|
Телепаты в отпуске. Код в студию.
|
26.04.2013, 17:56 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 19,042
|
Предупреждающие сообщения можно отключить. По поводу Integer вопрос разработчикам
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
26.04.2013, 20:18 | #4 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,120
|
malor
Зачем у "TStringList" свойству "Count" иметь знаковый тип (Integer) ? Потому что это говнокод.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
26.04.2013, 21:03 | #5 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,442
|
Цитата:
Integer, потому, что: 1. Если строк нет, то Count = 0 2. Строк может быть сильно дофига. 3. Числа проще сравнивать, чем строки. Цитата:
И если в переменную Cardinal вы запихаете число Integer, скажем -1, то будет ошибка. Потому вас и предупреждает об этом компилятор. |
||
26.04.2013, 21:14 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 19,042
|
Integer, потому, что:
1. Если строк нет, то Count = 0 - DWORD нулем не может быть? 2. Строк может быть сильно дофига - в DWORD влазит дофига*2 3. Числа проще сравнивать, чем строки. - DWORD тоже не строчка Так что в некотором смысле DWORD было бы по крайней мере не хуже Integer. Хотя возможно и есть подводные камни, которых в упор не вижу
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
26.04.2013, 21:16 | #7 |
Форумчанин
Регистрация: 23.05.2007
Сообщений: 151
|
Человек_Борща, вы в моем вопросе прочитали какой-то другой вопрос и развернуто на него ответили.
Rififi, какая строчка кода оказалась говнокодом? |
26.04.2013, 21:56 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вспоминаем например TListBox, у него индекс -1 нужен.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
26.04.2013, 23:20 | #9 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,442
|
Цитата:
Цитата:
|
||
27.04.2013, 00:50 | #10 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
index, но не count. Количество не может быть отрицательным, это все равно что делить на ноль.
В долг никто никому ничего не дает. "У меня -50000р на счету, пришли какие-то люди выносить мою мебель."
alextrof94$gmail.com
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") | funnyy | Помощь студентам | 3 | 17.10.2012 17:40 |
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. | воваава | Помощь студентам | 3 | 01.12.2011 12:50 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
настроить при открытии Excel 2003 в окошке "Тип файлов" вывод пункта "Все файлы (*.*)" по умолчанию? | Unior | Microsoft Office Excel | 2 | 01.03.2009 02:42 |