avva: (Default)
[personal profile] avva
(интересно будет только программистам и сочувствующим, знающим язык C)

Интервьюировал кандидата, который в своем коде на C все время писал так:

for (unsigned i = 0; i < ...


Забавно. Вполне нормальный C, конечно, но в последний раз я видел код, который использовал unsigned, а не unsigned int, где-то в середине 90-х, наверное. Веет от этого кода чем-то старинно-олдскулным.

Date: 2011-05-24 01:40 pm (UTC)
From: [identity profile] leonidph1972.livejournal.com
Кандидат был старый ?

(no subject)

From: [identity profile] xenko.livejournal.com - Date: 2011-05-27 08:25 am (UTC) - Expand

Date: 2011-05-24 01:40 pm (UTC)
From: [identity profile] larubin.livejournal.com
Не, серединой 90-х от C с декларацией внутри for веять не может :)

Date: 2011-05-24 01:43 pm (UTC)
From: [identity profile] leonidph1972.livejournal.com
кстати да !!!
годы плюсов дают о себе знать! )))
Скорее он просто забыл int :-)

Date: 2011-05-24 01:46 pm (UTC)
From: [identity profile] avva.livejournal.com
Интересно, а ведь вы правы. Ну он не только в циклах так писал, у него вообще все переменные были unsigned без int. И вместе с тем везде, где уместно - объявлялись как const. Странное сочетание.

const unsigned foo = ...
const unsigned bar = ...
for (unsigned baz = ...

(no subject)

From: [identity profile] trurle.livejournal.com - Date: 2011-05-24 01:52 pm (UTC) - Expand

(no subject)

From: [identity profile] xenko.livejournal.com - Date: 2011-05-27 08:28 am (UTC) - Expand

(no subject)

From: [identity profile] anatoly borodin - Date: 2011-05-27 10:26 am (UTC) - Expand

(no subject)

From: [identity profile] xenko.livejournal.com - Date: 2011-05-28 08:02 am (UTC) - Expand

Date: 2011-05-24 01:47 pm (UTC)
From: [identity profile] getman.livejournal.com
Угу, и у меня рука к делиту потянулась.

(no subject)

From: [identity profile] neatfires.livejournal.com - Date: 2011-05-24 06:47 pm (UTC) - Expand

(no subject)

From: [identity profile] neatfires.livejournal.com - Date: 2011-05-24 07:01 pm (UTC) - Expand

чуть в сторону

Date: 2011-05-24 01:51 pm (UTC)
From: [identity profile] fyysik.livejournal.com
хех, если подумать, то в общем заботиться об экономии или еще о чем, например, эксплицитно употребляя short, int, int32, int64, long - это вообще 40-ми годами попахивает:)

Re: чуть в сторону

Date: 2011-05-25 07:53 pm (UTC)
From: [identity profile] norritt.livejournal.com
ну я так до сих пор делаю. Хотя мне и не сорок, пока что :)
С другой стороны, я уж очень, очень давно не ваял на сях.

Re: чуть в сторону

From: [identity profile] fyysik.livejournal.com - Date: 2011-05-25 09:12 pm (UTC) - Expand

Date: 2011-05-24 01:53 pm (UTC)
From: [identity profile] tandem-bike.livejournal.com
дряхлый какой-то кандидат. я именно в 90х на с пислал, никаких таких не видела вариабл дефинишнз... а потом и всякие глобалз пропали... и функции - в матлабе проще весь код слить в один файл и не заморачиваться..

Date: 2011-05-24 01:53 pm (UTC)
From: [identity profile] qehgt.livejournal.com
Так "unsigned int" - же длиннее. Зачем так писать?

ps: да, я "unsigned" использую, и я точно не один такой в отделе был.

Date: 2011-05-24 06:51 pm (UTC)
From: [identity profile] neatfires.livejournal.com
ага, а еще лучше определить uint через define

Date: 2011-05-24 01:55 pm (UTC)
From: [identity profile] vyhuhol.livejournal.com
Я щитаю, этот кандидат будет гореть примерно в той же части ада, как те, которые объявляют функции
static func(void);

Date: 2011-05-24 02:00 pm (UTC)
From: [identity profile] zhengxi.livejournal.com
это в с++ не скомпилится, только в с

(no subject)

From: [identity profile] blajer.livejournal.com - Date: 2011-05-24 03:09 pm (UTC) - Expand

(no subject)

From: [identity profile] zhengxi.livejournal.com - Date: 2011-05-24 03:13 pm (UTC) - Expand

(no subject)

From: [identity profile] blajer.livejournal.com - Date: 2011-05-24 03:15 pm (UTC) - Expand

(no subject)

From: [identity profile] zhengxi.livejournal.com - Date: 2011-05-24 03:20 pm (UTC) - Expand

(no subject)

From: [identity profile] blajer.livejournal.com - Date: 2011-05-24 03:23 pm (UTC) - Expand

(no subject)

From: [identity profile] igorlord.livejournal.com - Date: 2011-05-25 02:41 am (UTC) - Expand

(no subject)

From: [identity profile] vyhuhol.livejournal.com - Date: 2011-05-25 08:08 pm (UTC) - Expand

(no subject)

From: [identity profile] igorlord.livejournal.com - Date: 2011-05-26 02:31 pm (UTC) - Expand

(no subject)

From: [identity profile] ilya-dogolazky.livejournal.com - Date: 2011-05-24 08:04 pm (UTC) - Expand

(no subject)

From: [identity profile] vyhuhol.livejournal.com - Date: 2011-05-24 10:17 pm (UTC) - Expand

(no subject)

From: [identity profile] ilya-dogolazky.livejournal.com - Date: 2011-05-25 04:24 am (UTC) - Expand

(no subject)

From: [identity profile] vyhuhol.livejournal.com - Date: 2011-05-25 05:43 am (UTC) - Expand

(no subject)

From: [identity profile] xenko.livejournal.com - Date: 2011-05-27 08:34 am (UTC) - Expand

(no subject)

From: [identity profile] vyhuhol.livejournal.com - Date: 2011-05-27 09:48 am (UTC) - Expand

(no subject)

From: [identity profile] sin-gular.livejournal.com - Date: 2011-05-25 09:20 am (UTC) - Expand

(no subject)

From: [identity profile] zhengxi.livejournal.com - Date: 2011-05-25 10:28 am (UTC) - Expand

(no subject)

From: [identity profile] sin-gular.livejournal.com - Date: 2011-05-25 12:42 pm (UTC) - Expand

(no subject)

From: [identity profile] vyhuhol.livejournal.com - Date: 2011-05-25 12:06 pm (UTC) - Expand

(no subject)

From: [identity profile] sin-gular.livejournal.com - Date: 2011-05-25 05:55 pm (UTC) - Expand

(no subject)

From: [identity profile] vyhuhol.livejournal.com - Date: 2011-05-25 08:13 pm (UTC) - Expand

(no subject)

From: [identity profile] sin-gular.livejournal.com - Date: 2011-05-25 08:40 pm (UTC) - Expand

(no subject)

From: [identity profile] vyhuhol.livejournal.com - Date: 2011-05-26 07:34 am (UTC) - Expand

(no subject)

From: [identity profile] sin-gular.livejournal.com - Date: 2011-05-26 09:10 am (UTC) - Expand

(no subject)

From: [identity profile] xenko.livejournal.com - Date: 2011-05-27 08:31 am (UTC) - Expand

Date: 2011-05-24 02:00 pm (UTC)
From: [identity profile] b-a-t.livejournal.com
Это все от лени! Нет, чтоб добавить нужный хедер и писать uint16 или uint32! :)

Date: 2011-05-24 02:06 pm (UTC)
From: [identity profile] qehgt.livejournal.com
Этот "хедер" (с объявлениями uint16/uint32) на разных платформах - разный. А объявление "unsigned i" работает везде.

(no subject)

From: [identity profile] pin-dragon.livejournal.com - Date: 2011-05-25 08:37 pm (UTC) - Expand

Date: 2011-05-24 02:05 pm (UTC)
From: [identity profile] blacklion.livejournal.com
Эмм... Я бы сказал, что кроме особого обоснования, уже довольно давно надо использовать типы с чётким указанием знаковости и битности (те, что из inttypes.h, [u]int<bits>_t).
Причём использование знаковых типов тоже надо обосновывать, а то переполнение знаковой арифметики — undefined behavior.

Date: 2011-05-24 02:29 pm (UTC)
From: [identity profile] http://users.livejournal.com/_winnie/
имхо. из двух зол "безнаковые числа по умолчанию" и "знаковые числа по умолчанию" лучше второе. Жить с unsigned по умолчанию ИМХО невозможно, слишком часто в (b-a) b неожиданно меньше a. Если пытаться везде использовать unsigned только для "штук" и int по умолчанию используя зравый смысл, то слишком часто надо их стыковать и гасить warning-и компилятора. С другой стороны, библиотека уже активно использует unsigned size_t для штук, я его в int чаще всего кастую (на текущем месте работы в разработке игр это можно, на следующем в крупной информационной компании уже будет нельзя).

(no subject)

From: [identity profile] blacklion.livejournal.com - Date: 2011-05-24 02:31 pm (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/_winnie/ - Date: 2011-05-24 02:43 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2011-05-24 03:08 pm (UTC) - Expand

(no subject)

From: [identity profile] igorlord.livejournal.com - Date: 2011-05-25 02:49 am (UTC) - Expand

(no subject)

From: [identity profile] itman.livejournal.com - Date: 2011-05-26 01:34 am (UTC) - Expand

(no subject)

From: [identity profile] norian.livejournal.com - Date: 2011-05-24 02:45 pm (UTC) - Expand

(no subject)

From: [identity profile] xxqs.livejournal.com - Date: 2011-05-24 03:16 pm (UTC) - Expand

(no subject)

From: [identity profile] blacklion.livejournal.com - Date: 2011-05-24 03:18 pm (UTC) - Expand

(no subject)

From: [identity profile] xxqs.livejournal.com - Date: 2011-05-24 03:21 pm (UTC) - Expand

(no subject)

From: [identity profile] rezkiy.livejournal.com - Date: 2011-05-24 06:21 pm (UTC) - Expand

(no subject)

From: [identity profile] xxqs.livejournal.com - Date: 2011-05-24 08:03 pm (UTC) - Expand

(no subject)

From: [identity profile] rezkiy.livejournal.com - Date: 2011-05-24 09:38 pm (UTC) - Expand

(no subject)

From: [identity profile] xxqs.livejournal.com - Date: 2011-05-25 08:17 am (UTC) - Expand

(no subject)

From: [identity profile] xxqs.livejournal.com - Date: 2011-05-24 03:21 pm (UTC) - Expand

Date: 2011-05-24 02:29 pm (UTC)
From: [identity profile] smalgin.livejournal.com
var x.... :)

Date: 2011-05-24 02:36 pm (UTC)
From: [identity profile] zhengxi.livejournal.com
auto x, и никто не назовет старым пердуном :)

(no subject)

From: [identity profile] lazyreader.livejournal.com - Date: 2011-05-24 02:40 pm (UTC) - Expand

(no subject)

From: [identity profile] larubin.livejournal.com - Date: 2011-05-24 03:15 pm (UTC) - Expand

Date: 2011-05-24 02:44 pm (UTC)
From: [identity profile] norian.livejournal.com
может учил язык по особо извращённой книжге ..

Date: 2011-05-24 03:00 pm (UTC)
From: [identity profile] zigmar.livejournal.com
Мне голый "unsigned" очень режет глаз, а "long" почему-то нет, даже сам иногда использую.

Date: 2011-05-24 03:10 pm (UTC)
From: [identity profile] creaturen2.livejournal.com
Сдается мне, вместо unsigned там должно было быть size_t.

Date: 2011-05-24 03:18 pm (UTC)
From: (Anonymous)
operator++()

(no subject)

From: [identity profile] creaturen2.livejournal.com - Date: 2011-05-24 03:22 pm (UTC) - Expand

Date: 2011-05-24 04:12 pm (UTC)
From: [identity profile] kapla55.livejournal.com
Unsigned без int очень даже распространенная идиома. Сейчас посмотрел в исходниках gcc (они очень соблюдают стиль) - из 6100 unsigned только 2800 имеют int после unsigned, то есть, чуть меньше половины. unisigned long и char я не учитывал.

Date: 2011-05-24 04:17 pm (UTC)
From: [identity profile] levrrr.livejournal.com
В школе, классе в 6-ом, мне как-то снизили оценку на экзамене по математике за то, что я использовал в формулах только круглые скобки, а надо было в зависимости от уровня вложенности использовать также квадратные и фигурные.
Потом я перешёл в матшколу, там на это не обращали внимания :-)

Date: 2011-05-25 05:18 am (UTC)
From: [identity profile] utnapishti.livejournal.com
В матшколе вообще могли считать, что всем известно, что [x] это целая часть, а {x} - дробная :)

Date: 2011-05-24 04:30 pm (UTC)
From: [identity profile] kot-begemot.livejournal.com
Пофигу. Синткасис позволяет - значит имеет право. Хотя сам так никогда не пишу.

std::size_t

Date: 2011-05-24 05:28 pm (UTC)
From: [identity profile] alex-vinokur.livejournal.com
for (std::size_t i = 0; i < ...

Date: 2011-05-24 06:13 pm (UTC)
From: [identity profile] igorlord.livejournal.com
1. for (unsigned i = 0; i < ...

This is not a valid C. It is a valid C++, though.


2. I always use "unsigned" instead of "unsigned int". Why extra verbosity?

(no subject)

From: [identity profile] igorlord.livejournal.com - Date: 2011-05-24 07:09 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2011-05-24 07:16 pm (UTC) - Expand

(no subject)

From: [identity profile] igorlord.livejournal.com - Date: 2011-05-24 07:43 pm (UTC) - Expand

(no subject)

From: [identity profile] polter.livejournal.com - Date: 2011-05-24 07:40 pm (UTC) - Expand

(no subject)

From: [identity profile] igorlord.livejournal.com - Date: 2011-05-24 07:51 pm (UTC) - Expand

(no subject)

From: [identity profile] polter.livejournal.com - Date: 2011-05-24 08:22 pm (UTC) - Expand

(no subject)

From: [identity profile] igorlord.livejournal.com - Date: 2011-05-24 09:16 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2011-05-25 05:35 am (UTC) - Expand

(no subject)

From: [identity profile] igorlord.livejournal.com - Date: 2011-05-26 02:29 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2011-05-26 10:50 pm (UTC) - Expand

В Watcom-е

Date: 2011-05-24 09:22 pm (UTC)
From: [identity profile] aurfin76.livejournal.com
вообще, были определены типы uint, ushort, ulong. На нем все игры 90-х писались.

Date: 2011-05-25 12:35 am (UTC)
From: [identity profile] msh.livejournal.com
Веет от этого кода беззаботностью, не видел человек боли и мук, после которых пропадают в коде всякие unsigned и остаются только uint64_t да size_t

Date: 2011-05-25 10:05 am (UTC)
From: [identity profile] dimrub.livejournal.com
После этого человек понабирается еще опыта, и снова начинает использовать unsigned там, где это вполне разумно (например, для переменных цикла с заведомо ограниченным числом итераций).

(no subject)

From: [identity profile] msh.livejournal.com - Date: 2011-05-25 12:57 pm (UTC) - Expand

(no subject)

From: [identity profile] igorlord.livejournal.com - Date: 2011-05-26 02:26 pm (UTC) - Expand

Date: 2011-05-25 03:06 am (UTC)
stas: (Default)
From: [personal profile] stas
Я бы обязательно вписал int. А то оно как-то не так выглядит.

Date: 2011-05-25 10:04 am (UTC)
From: [identity profile] dimrub.livejournal.com
На интервью, из соображений экономии времени, вполне разумное решение. Он еще спросил, можно ли писать u8 в качестве сокращения для unit8_t.

(no subject)

From: [personal profile] stas - Date: 2011-05-25 05:22 pm (UTC) - Expand

(no subject)

From: [identity profile] haiut.livejournal.com - Date: 2011-05-25 04:56 pm (UTC) - Expand

(no subject)

From: [identity profile] kapla55.livejournal.com - Date: 2011-05-26 09:37 am (UTC) - Expand

Date: 2011-05-25 11:46 am (UTC)
From: [identity profile] gaius-julius.livejournal.com
вот блин, а я и не знал что опускать int не принято. Видимо от того что пишу на С от силы раз в год.

Date: 2011-05-26 09:34 am (UTC)
From: [identity profile] kapla55.livejournal.com
Так в том то и дело, что вполне принято. Просто не все об этом знают.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 05:29 pm
Powered by Dreamwidth Studios