|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.08.2010, 16:04 | #1 |
Форумчанин
Регистрация: 20.06.2008
Сообщений: 125
|
int vs unsigned int
Собственно вопрос о хорошем стиле.
Заметил, что большинство программистов используют int вместо unsigned int даже там, где значение не может быть отрицательным. Например функцию, возвращающую вектор простых чисел стоит объявить первым или вторым образом? Почему? Код:
Код:
|
28.08.2010, 16:08 | #2 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
от тебя зависит. может ты захочешь разницу находить между простыми числами, кто тя знает
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
28.08.2010, 16:20 | #3 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
int короче писать.
|
28.08.2010, 16:21 | #4 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Carbon
Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
28.08.2010, 16:56 | #5 |
Форумчанин
Регистрация: 16.08.2008
Сообщений: 276
|
Ни в коем случае. Модификатор типа unsigned указывает, что переменная принимает неотрицательные значения. При этом самый левый бит области памяти, выделяемой для хранения значения, используется так же, как и все остальные биты области памяти - для представления значения. В отличии от signed, где самый левый бит применяется для представления знака...
Как правильно заметили: так короче писать... Еще как вариант: так надежнее (не всегда хорошо). Приведу маленький пример: У Вас есть банковская система, и Вы производите операции с ДС. Тут вы делаете роковую ошибку и случайно заносите значение -1 (ну забыли, или храните в ней что-нибудь "нужное"). Далее 2 пути: unsighd int: unsighd int видит -1 и никого не спрашивая конвертит ее в 65535 со всеми вытекающими последствиями...На счет клиента идет сумма в 65 с копейками миллионов $... (Неприятно?) signed int (int): Программа вылетает с ошибкой и Вы с угрюмой миной ищите злополучную ошибку. Ну или со счета снимается сумма в 1 млн $ Вариантов море и все выглядят убедительно.
Искусственный интеллект - фигня по сравнению с естественной глупостью
|
28.08.2010, 17:05 | #6 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
А ещё unsigned int нужно применять с осторожностью в циклах с обратным ходом:
Код:
|
28.08.2010, 17:38 | #7 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Impuls1989
Цитата:
я предложил typedef для сокращения unsigned int, т.к предыдущий оратор заявил, что лучше писать короче.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
28.08.2010, 18:05 | #8 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Carbon
Цитата:
Код:
интернет седня хуже некуда....
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 28.08.2010 в 18:08. |
|
28.08.2010, 18:28 | #9 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Мы ж про int говорили...
|
28.08.2010, 18:51 | #10 | |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Цитата:
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[РЕШЕНО][C] unsigned int аргумент работает как signed | Sfuller | Общие вопросы C/C++ | 2 | 30.06.2010 18:17 |
int **x | Di3el | Общие вопросы C/C++ | 11 | 16.12.2009 19:22 |
float to int | Артэс | Общие вопросы C/C++ | 1 | 14.12.2009 01:20 |
AnsiString to Int | NoF[1]X | Общие вопросы C/C++ | 4 | 22.07.2009 00:08 |
float to int | span4 | SQL, базы данных | 7 | 01.06.2009 10:57 |