avva: (moose)
[personal profile] avva
Цитирую из подзамочной записи с разрешения автора, который работает в американской компании и интервьюирует программистов:
Интесная закономерность выявляется. Мы начинаем интервью с того, что просим кандидата прочитать вот такой код, и сказать, что он делает. Как бы он назвал эту функцию?

private static int ok(int a, int b) {
   while (a >= b) a -= b;
   return a;
}

Пока результаты такие, что после этого вопроса интервью можно заканчивать. Если человек отвечает нормально на этот вопрос, то и дальше отвечает нормально. Если вообще близко не может понять о чем речь, то дальше только хуже.

Date: 2013-05-13 08:32 am (UTC)
From: [identity profile] mopexod.livejournal.com
О, кстати неплохая идея. Помимо пересекающихся областей памяти, еще и базовые типы неизвестной длины.

Date: 2013-05-13 09:30 am (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Ну, memmove копирует байты, по определению. Та что с типами как раз проблем нет.

Date: 2013-05-13 10:01 am (UTC)
From: [identity profile] mopexod.livejournal.com
В кондовом стандартном С нету байтов :(

http://en.wikipedia.org/wiki/C_data_types

Date: 2013-05-13 10:38 am (UTC)
From: [identity profile] vrml.livejournal.com
В качестве байтов всегда использовались char.

Date: 2013-05-13 10:59 am (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Есть. Читайте не википедию, а стандарт ;)

Date: 2013-05-13 11:25 am (UTC)
From: [identity profile] mopexod.livejournal.com
http://flash-gordon.me.uk/ansi.c.txt

Параграф '3.1.2.5 Types' (вообще не упоминает слово byte):
An object declared as type char is large enough to store any member of the basic execution character set.

Параграф '1.6 DEFINITIONS OF TERMS':
Byte --- the unit of data storage in the execution environment large enough to hold any member of the basic character set of the execution environment.

Каждый из них "large enough", но про одинаковость - ни слова.

Date: 2013-05-13 11:27 am (UTC)
From: [identity profile] mopexod.livejournal.com
*** ссылка на стандарт убрана из-за спамоловки ***

Параграф '3.1.2.5 Types' (вообще не упоминает слово byte):
An object declared as type char is large enough to store any member of the basic execution character set.

Параграф '1.6 DEFINITIONS OF TERMS':
Byte --- the unit of data storage in the execution environment large enough to hold any member of the basic character set of the execution environment.

Каждый из них "large enough", но про одинаковость - ни слова.

Date: 2013-05-13 01:09 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Байт ― не тип, а единица памяти, верно. Sizeof возвращает количество этих единиц. Размер типа char в этих единицах ― 1.

Date: 2013-05-13 01:40 pm (UTC)
From: [identity profile] mopexod.livejournal.com
Со всем согласен. Только гарантии на последнее утверждение стандарт не даёт. Хотя имплементаций, где бы это было не так, не видел ни разу, и не помню что читал о таких.

Date: 2013-05-13 01:46 pm (UTC)
From: [identity profile] mopexod.livejournal.com
Начиная со стандарта С99 это установлено. До того, насколько я понимаю, - нет.

Date: 2013-05-13 02:42 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Я не могу сейчас проверить, но мне кажется, это во всех стандартах было, в той или иной формулировке.
UPD: нашел драфт С89, а там

Character --- a single byte representing a member of the basic character
set of either the source or the execution environment.

...

The sizeof operator yields the size (in bytes) of its operand,
which may be an expression or the parenthesized name of a type. The
size is determined from the type of the operand, which is not itself
evaluated. The result is an integer constant.

When applied to an operand that has type char , unsigned char , or
signed char , (or a qualified version thereof) the result is 1.
Edited Date: 2013-05-13 02:50 pm (UTC)

Date: 2013-05-13 03:18 pm (UTC)
From: [identity profile] mopexod.livejournal.com
О, я эту фразу и в стандарте 88 года тоже нашел. Видимо, всегда было. Ошибся :)

July 2025

S M T W T F S
  12345
67 89101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 9th, 2025 01:51 am
Powered by Dreamwidth Studios