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

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

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


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

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
это в с++ не скомпилится, только в с

Date: 2011-05-24 03:09 pm (UTC)
From: [identity profile] blajer.livejournal.com
MSVC 2008 не только компилит такое, но и само генерирует код нового класса в виде
class Foo
{
public:
Foo(void);
virtual ~Foo(void);
};

Date: 2011-05-24 03:13 pm (UTC)
From: [identity profile] zhengxi.livejournal.com
В 2010 - ошибка компиляции.

А зачем класс?
Это же просто forward declaration функции.

Date: 2011-05-24 03:15 pm (UTC)
From: [identity profile] blajer.livejournal.com
Класс — чтобы показать, что речь о C++.

Date: 2011-05-24 03:20 pm (UTC)
From: [identity profile] zhengxi.livejournal.com
А что с классом не так?
в "static func(void);" пропущен возвращаемый функцией int, который компилятор C (но не C++) там подразумевает.
Так же как в "unsigned x" они оба подразумевают пропущеный int.

Date: 2011-05-24 03:23 pm (UTC)
From: [identity profile] blajer.livejournal.com
Да, я не на то вообще смотрел, извините. Оба мои комментария прошу игнорировать.

Date: 2011-05-25 02:41 am (UTC)
From: [identity profile] igorlord.livejournal.com
Implied int return type is depricated in ANSI C but left in the language for pre-ANSI compatibility. On the other hand, "unsigned" and "unsigned int" are defined as synonyms.

There is a huge difference in using a depricated part of the language and a fully supported part.

Date: 2011-05-25 08:08 pm (UTC)
From: [identity profile] vyhuhol.livejournal.com
"depricated" -- это, наверно, «с оторванным prick-ом»

Date: 2011-05-26 02:31 pm (UTC)

Date: 2011-05-24 08:04 pm (UTC)
From: [identity profile] ilya-dogolazky.livejournal.com
Поясните пожалуйста свою мысль, очень уж меня мои будущие соседи по аду интересуют

Date: 2011-05-24 10:17 pm (UTC)
From: [identity profile] vyhuhol.livejournal.com
Знаете этот древний прикол про единицу измерения качества кода, wtf/m?
Этот способ записи добавляет один лишний wtf на пустом месте: вместо «что там возвращает эта функция? ага, int» получается «что там возвращает эта функция? wtf, тут чего-то не хватает. какое у функций дефолтный возвращаемый тип? ага, int».

Date: 2011-05-25 04:24 am (UTC)
From: [identity profile] ilya-dogolazky.livejournal.com
Извиняюсь, недостаточно ясно выразил свою глубокую мысль. Поясните пожалуйста в чём аццкость опускания слова int после слова unsigned.

Date: 2011-05-25 05:43 am (UTC)
From: [identity profile] vyhuhol.livejournal.com
Тем же самым, нет?

Date: 2011-05-27 08:34 am (UTC)
From: [identity profile] xenko.livejournal.com
вы кроме си++ и паскаля на чемньть писали?

Date: 2011-05-27 09:48 am (UTC)
From: [identity profile] vyhuhol.livejournal.com
Что вы, куда мне. Я простой деревенский паренёк, не то, что вы, крутой программист на чемньть.

Date: 2011-05-25 09:20 am (UTC)
From: [identity profile] sin-gular.livejournal.com
Тяжко. Если в выражении a + b * c не поставить скобки, то придется вспоминать у кого приоритет выше. Тоже wtf получается...

Date: 2011-05-25 10:28 am (UTC)
From: [identity profile] zhengxi.livejournal.com
"a + b * c" врядли, а вот в выражении "a | b << c" таки придётся

Date: 2011-05-25 12:42 pm (UTC)
From: [identity profile] sin-gular.livejournal.com
Да, но вот граница у всех по разному проходит. Некоторые в &a->f считают что вокруг a->f надо скобки...

Date: 2011-05-25 12:06 pm (UTC)
From: [identity profile] vyhuhol.livejournal.com
Да-да, а reducio ad absurdum -- замечательный способ вести спор.

Date: 2011-05-25 05:55 pm (UTC)
From: [identity profile] sin-gular.livejournal.com
Ок. Если без иронии - мне кажется, что опускать тип возврата функции действительно тянет на высшую меру, а использовать тип unsigned - нормальная практика. Я просто не понимаю какие сомнения это может вызвать.

Date: 2011-05-25 08:13 pm (UTC)
From: [identity profile] vyhuhol.livejournal.com
Мне кажется, что тут нет предмета спора. Эта граница проходит у всех по-разному проходит, определяется личным чувством вкуса, опытом, привычками, с какими codebase-ами приходилось работать, итп.
Лично мне некомфортно, если в определении переменной не написано char/long/int/short/float/double. И да, я в курсе, что вместо long можно написать long int, и т.п, но вот так сложилось.

Date: 2011-05-25 08:40 pm (UTC)
From: [identity profile] sin-gular.livejournal.com
Вы правы - мы не о чём не спорим. Просто делимся вкусовыми предпочтениями.
Но правда жизни такова, что под вкусы, скажем, начальства, приходиться подстраиваться.
Кстати, я не совсем понял: если unsigned как определение типа вызывает у Вас дискомфорт - то наверное и long без int тоже должен.

Date: 2011-05-26 07:34 am (UTC)
From: [identity profile] vyhuhol.livejournal.com
Как раз нет, я же написал там. long у меня уже прокрался в first-class citizens.

(no subject)

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

Date: 2011-05-27 08:31 am (UTC)
From: [identity profile] xenko.livejournal.com
они будут гореть рядом с владельцами перфораторов и газонокосилок
вот ЭТО - как раз молодое поколение, начитавшееся си для чайников и прочае

January 2026

S M T W T F S
    1 2 3
4 5678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 03:22 am
Powered by Dreamwidth Studios