yuri.nefe...@gmail.com - debian-russian@lists.debian.org @ Wed, 8 Oct 2014
01:25:38 +0400 (MSK):
Впрочем, по сути это тот же самый хак, который позволяет
void f (int n) {
something var[n];
}
y Почему же хак? Variable length array входят в стандарт С99.
Потому что работает в
AC == Artem Chuprina r...@ran.pp.ru writes:
[…]
AC Называется этот прием непрозрачный указатель (opaque pointer),
AC иногда говорят непрозрачная структура (opaque structure) и
AC используется в хвост и в гриву, начиная с libc (FILE *).
Зависит. Вот, к примеру, в [1] находим:
Ivan Shmakov - debian-russian@lists.debian.org @ Tue, 07 Oct 2014 12:47:49
+:
AC Называется этот прием непрозрачный указатель (opaque pointer),
AC иногда говорят непрозрачная структура (opaque structure) и
AC используется в хвост и в гриву, начиная с libc (FILE *).
ISЗависит. Вот,
Коллеги, sizeof вычисляется во время компиляции. Всегда.Денис 07.10.2014, 17:45, "Artem Chuprina" r...@ran.pp.ru:Ivan Shmakov - debian-russian@lists.debian.org @ Tue, 07 Oct 2014 12:47:49 +: AC Называется этот прием "непрозрачный указатель" (opaque pointer), AC иногда говорят "непрозрачная
Коллеги, sizeof вычисляется во время компиляции. Всегда.Денис 07.10.2014, 17:45, "Artem Chuprina" r...@ran.pp.ru:Ivan Shmakov - debian-russian@lists.debian.org @ Tue, 07 Oct 2014 12:47:49 +: AC Называется этот прием "непрозрачный указатель" (opaque pointer), AC иногда говорят "непрозрачная
On Tue, 7 Oct 2014, Денис Ильин wrote:
Коллеги, sizeof вычисляется во время компиляции. Всегда.
Денис
Почему? В любом компиляторе?
Факт состоит в том, что стандарт языка С не определяет
этого = это просто практические наблюдения.
Ю.
yuri.nefe...@gmail.com writes:
On Tue, 7 Oct 2014, Денис Ильин wrote:
Коллеги, sizeof вычисляется во время компиляции. Всегда.
Денис
Почему? В любом компиляторе?
Ну, как тебе сказать... Эта штука принимает в качестве параметра
_тип_. Поскольку с символами язык Си работать не умеет,
Денис Ильин - Artem Chuprina @ Tue, 07 Oct 2014 18:01:30 +0400:
ДИ Коллеги, sizeof вычисляется во время компиляции. Всегда.
Коллега, а никак нельзя сделать так, чтобы Ваши письма НЕ приходили
1) в ответ на то письмо, к которому они не относятся (хотя и относятся к той же
теме дискуссии);
On Tue, 7 Oct 2014, Dmitrii Kashin wrote:
yuri.nefe...@gmail.com writes:
On Tue, 7 Oct 2014, Денис Ильин wrote:
Коллеги, sizeof вычисляется во время компиляции. Всегда.
Денис
Почему? В любом компиляторе?
Ну, как тебе сказать... Эта штука принимает в качестве параметра
_тип_.
AC == Artem Chuprina r...@ran.pp.ru writes:
Ivan Shmakov - debian-russian@lists.debian.org:
[…]
IS Что как бы намекает на то, что FILE отнюдь не opaque.
AC Как минимум, используется он как opaque. Хотя на практике он,
AC скорее всего, тоже уже устоялся, не менялся дцать лет, и может быть
Ivan Shmakov - debian-russian@lists.debian.org @ Tue, 07 Oct 2014 17:15:44
+:
IS Что как бы намекает на то, что FILE отнюдь не opaque.
AC Как минимум, используется он как opaque. Хотя на практике он,
AC скорее всего, тоже уже устоялся, не менялся дцать лет, и может быть
AC доступен
yuri.nefe...@gmail.com - debian-russian@lists.debian.org @ Tue, 7 Oct 2014
21:13:08 +0400 (MSK):
Коллеги, sizeof вычисляется во время компиляции. Всегда.
Денис
Почему? В любом компиляторе?
Ну, как тебе сказать... Эта штука принимает в качестве параметра
_тип_. Поскольку с
On Tue, 7 Oct 2014, Artem Chuprina wrote:
y Что-то я вас не понимаю (с).
y Сами же написали: «sizeof(int[n]) преобразуется в нечто
y вроде n*sizeof(int)». Это n* и выполняется в run time.
n* - да, а sizeof - нет. С чем ты споришь?
Еще раз:
int temp[n];
sizeof(temp);
On Tue, 7 Oct 2014, Ivan Shmakov wrote:
Смысл в том, что «непрозрачные указатели» C плохо совмещаются с
такими средствами языка, как inline и #define.
Вроде бы для inline должно все работать при правильном описании [1].
При вызова из другого файла будет работать как обычная
AC == Artem Chuprina r...@ran.pp.ru writes:
Ivan Shmakov - debian-russian@lists.debian.org:
[…]
AC Но тем не менее, в _API_ libc определения FILE нет.
IS Да, но это свойство документации, — не языка.
AC Не библиотеки, скажем так. Это, гм, намек: если вы раскопали в
AC хедерах
yuri.nefe...@gmail.com - debian-russian@lists.debian.org @ Tue, 7 Oct 2014
22:24:02 +0400 (MSK):
y Что-то я вас не понимаю (с).
y Сами же написали: «sizeof(int[n]) преобразуется в нечто
y вроде n*sizeof(int)». Это n* и выполняется в run time.
n* - да, а sizeof - нет. С чем ты
yuri.nefe...@gmail.com - debian-russian@lists.debian.org @ Tue, 7 Oct 2014
23:03:24 +0400 (MSK):
Смысл в том, что «непрозрачные указатели» C плохо совмещаются с
такими средствами языка, как inline и #define.
y Вроде бы для inline должно все работать при правильном описании [1].
Ivan Shmakov - debian-russian@lists.debian.org @ Tue, 07 Oct 2014 19:05:53
+:
IS Недокументированные типы, функции, переменные, etc. — возможны
IS совершенно в любой среде программирования. В отличие от
IS «непрозрачных».
AC Начнем с того, что функции, типы и переменные, как
AC
On Wed, 8 Oct 2014, Artem Chuprina wrote:
Впрочем, по сути это тот же самый хак, который позволяет
void f (int n) {
something var[n];
}
Почему же хак? Variable length array входят в стандарт С99.
Ю.
19 matches
Mail list logo