powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
25 сообщений из 262, страница 4 из 11
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38641728
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. В общем понятно
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38641751
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению не могу в нормальном качестве выложить
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38645845
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Появилось немного времени(скоро предстоит одно событие, потому сейчас в основном занимаюсь математикой, не думайте что я ленюсь и так долго это изучаю), и я продолжил читать. Подскажите пожалуйста по некоторым вопросам

1.
©ISO/IEC ISO/IEC 9899:201x 6.2.5 19The void type comprises an empty set of values; it is an incomplete object type that
cannot be completed
Перевёл так: тип void представляет собой пустое множество элементов. Далее я не смогу получить логически связное предложение.
2.
©ISO/IEC ISO/IEC 9899:201x 6.2.5 20An array type describes a contiguously allocated nonempty set of objects with a
particular member object type, called the element type. The element type shall be
complete whenever the array type is specified. Array types are characterized by their
element type and by the number of elements in the array. An array type is said to be
derived from its element type, and if its element type is T, the array type is sometimes
called ‘‘array of T’’. The construction of an array type from an element type is called
‘‘array type derivation’’.

2.1 Red
"Тип элементов массива должен быть завершённым при указании типа массива. " Кажется я понял. Словосочетание "завершённый тип элемента" связано с
Anatoly Moskovsky
Код: plaintext
1.
2.
3.
4.
struct S;  // предварительное объявление, тип неполный, размер неизвестен
struct S* ptr; // так можно
struct S s; // так нельзя для неполных типов
struct S { int a;};  // окончательное объявление, после этого тип можно использовать без ограничений




Понял когда писал :) Правильно ?

Вероятно при объявлении массива где-то должна сохраняться информация о массиве, чтобы знать сколько выделять памяти на каждый элемент.
2.2 Blue
Эта информация хранится где-нибудь ? (провожу аналогию с системными таблицами СУБД). Впрочем выше я уже это спросил.
2.3. Green
Как правильно перевести ?

3.
©ISO/IEC ISO/IEC 9899:201x 6.2.5 20A structure type describes a sequentially allocated nonempty set of member objects
(and, in certain circumstances, an incomplete array), each of which has an optionally
specified name and possibly distinct type.
— A union type describes an overlapping nonempty set of member objects, each of
which has an optionally specified name and possibly distinct type.

3.1 Не каждый из членов структуры должен иметь имя ?
3.2 red Говорят о том что структура может быть иногда, в некотором смысле, массивом ?

Подумал, допустим:
Код: plaintext
1.
2.
3.
4.
5.
struct 
{
int a;
} 
array[100];


В данном случае, array[100], по функционалу будет отличаться от int a[100]?

4.Вообще, в более широком смысле, можно утверждать что массив массивов есть частный случай массива структур. А можно ли сказать, что массив есть частный случай структуры ?

C union type не очень понятно, надо поработать с ними сначала. Но что в данном контексте значит overlapping ?
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38645846
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSВообще, в более широком смысле, можно утверждать что массив массивов есть частный случай массива структур. А можно ли сказать, что массив есть частный случай структуры ?
наверное можно всё-же
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38645850
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury1.
©ISO/IEC ISO/IEC 9899:201x 6.2.5 19The void type comprises an empty set of values; it is an incomplete object type that
cannot be completed
Перевёл так: тип void представляет собой пустое множество элементов. Далее я не смогу получить логически связное предложение.
Тип void ведет себя как неполный, т.е. имеет те же ограничения (неизвестен размер, объявлять можно только указатель ..). При этом его нельзя сделать полным, т.е. это его изначальное и окончательное состояние.
SashaMercury2.1 Red
"Тип элементов массива должен быть завершённым при указании типа массива. " Кажется я понял. Словосочетание "завершённый тип элемента" связано с
Anatoly Moskovsky
Код: plaintext
1.
2.
3.
4.
struct S;  // предварительное объявление, тип неполный, размер неизвестен
struct S* ptr; // так можно
struct S s; // так нельзя для неполных типов
struct S { int a;};  // окончательное объявление, после этого тип можно использовать без ограничений





Понял когда писал :) Правильно ?
Да

SashaMercury2.2 Blue
Эта информация хранится где-нибудь ? (провожу аналогию с системными таблицами СУБД). Впрочем выше я уже это спросил.
Да, хранится в памяти компилятора при компиляции :)

SashaMercury3.
©ISO/IEC ISO/IEC 9899:201x 6.2.5 20A structure type describes a sequentially allocated nonempty set of member objects
(and, in certain circumstances, an incomplete array), each of which has an optionally
specified name and possibly distinct type.
— A union type describes an overlapping nonempty set of member objects, each of
which has an optionally specified name and possibly distinct type.

3.1 Не каждый из членов структуры должен иметь имя ?
3.2 red Говорят о том что структура может быть иногда, в некотором смысле, массивом ?
3.1 Да.
3.2. Нет, тут говорят про членов структуры.
Т.е. структура - это непустой набор объектов-членов, и иногда (вдобавок к этому набору) неполный массив
(т.е. массив без указания размерности)
Например:
Код: plaintext
1.
2.
3.
4.
struct S {
   int len;
   char data[];
};


В конце структуры допускается указание массива без размера, который будет в памяти физически расположен за структурой, а его размер будет вычисляться самой программой в рантайме, а не компилятором при объявлении.

SashaMercury4.Вообще, в более широком смысле, можно утверждать что массив массивов есть частный случай массива структур. А можно ли сказать, что массив есть частный случай структуры ?
Нет, ни то ни то не является частным случаем другого.
Но оба являются частным случаем коллекции.
Массив - коллекция однотипных объектов, структура - коллекция произвольных объектов.


SashaMercuryC union type не очень понятно, надо поработать с ними сначала. Но что в данном контексте значит overlapping ?
Означает - перекрывающиеся, т.е. имеющие общую память.
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38645877
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, в целом я понял.

Anatoly Moskovsky В конце структуры допускается указание массива без размера, который будет в памяти физически расположен за структурой, а его размер будет вычисляться самой программой в рантайме, а не компилятором при объявлении.

Подумал, где это может использоваться. Например для хранения набора символов неизвестной заранее мощности, возможно 1 символ, возможно 10^10 ?
Но тогда "места за структурой" может не хватить, должно быть какое-то ограничение на размер этого массива. Или я не так понял, и хранится указатель на начало массива неизвестной мощности ? Даже если сначала будет посчитан размер, и только потом выделена память на всё, запрашиваемый размер может быть слишком велик.
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38652688
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Продолжил дальше. Думал про функции, но чёткой картины не сложилось. Подскажите пожалуйста

©ISO/IEC ISO/IEC 9899:201x 6.2.5 20— A function type describes a function with specified return type. A function type is
characterized by its return type and the number and types of its parameters. A
function type is said to be derived from its return type, and if its return type is T, the
function type is sometimes called ‘‘function returning T’’. The construction of a
function type from a return type is called ‘‘function type derivation’’.
— A pointer type may be derived from a function type or an object type, called the
referenced type. A pointer type describes an object whose value provides a reference
to an entity of the referenced type. A pointer type derived from the referenced type T
is sometimes called ‘‘pointer to T’’. The construction of a pointer type from a
referenced type is called ‘‘pointer type derivation’’. A pointer type is a complete
object type.


А. Первое выделение я понял как: Тип указатель может быть получен из типа функции или из object type, называемого ссылочным типом.
Но мне кажется что я неправильно перевёл, или не правильно понял. Что хотят сказать ?
Б."T type derivation" встречаю не первый раз, подскажи как правильно переводить ?

В. Ну и самое главное, про функции. Где можно прочитать про то как работает функция ? я написал пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
int f(int a, int b)
{
	int c = a + b;
	return c;
}

int main(int argc,char** argv)
{
	f(1, 2);
	return 0;
}


Посмотрел ассемблерный код. Вот что я увидел:
01. Перед вызовом функции выполняется операция push столько раз, сколько у нас аргументов, то есть в стек помещаются аргументы функции
02. Выполняется операции call f(smth_MemoryAddress)
03. происходит операция add esp,8, изменяется адрес стека на вес параметров функции помещённых в стек ?

Вот что я предполагаю:
В.1. f- возможно, имеет схожий смысл с именем массива.
Код: plaintext
1.
int a[10];


То есть я делаю вывод что f что-то схожее с константным указателем(только его нельзя прочитать как например *f). Возможно я сильно не прав.
В.2. call, программа начинает выполнять инструкции расположенные с адреса smth_MemoryAddress до того как не встретит инструкцию ret.
В.3 А как функция получила входные параметры ? Видимо первые строчки кода функции буду обращаться к вершине стека eax ?(rасм код функции я не нашёл.) А как функция узнает сколько значений ей нужно читать с вершины стека ?
В.4 Куда будет записан результат ? В вершину стека ?
В.5 Параметры ранее помещённые в стек дальше будут затираться ? Они уже не нужны ?
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38652693
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryА. Первое выделение я понял как: Тип указатель может быть получен из типа функции или из object type, называемого ссылочным типом.
Но мне кажется что я неправильно перевёл, или не правильно понял. Что хотят сказать ?"это называется ссылочным типом". Указатель может быть на объект или на функцию - это ссылочный тип.

SashaMercuryБ."T type derivation" встречаю не первый раз, подскажи как правильно переводить ?"приведение типа".

SashaMercuryТо есть я делаю вывод что f что-то схожее с константным указателем(только его нельзя прочитать как например *f). Возможно я сильно не прав.Нууу... плюс-минус.
Имя функции это действительно константный указатель. И синтаксис его использования совпадает с синтаксисом имени массива.
Прочитать что находится по этому указателю - нельзя. Умные компиляторы тебе напомнят что это указатель на функцию, глупые позволят прочитать код функции (если ОС тоже это позволит).

SashaMercuryВ.2. call, программа начинает выполнять инструкции расположенные с адреса smth_MemoryAddress до того как не встретит инструкцию ret.да
SashaMercuryВ.3 А как функция получила входные параметры ? Видимо первые строчки кода функции буду обращаться к вершине стека eax ?(rасм код функции я не нашёл.) А как функция узнает сколько значений ей нужно читать с вершины стека ?А список аргументов на что?
SashaMercuryВ.4 Куда будет записан результат ? В вершину стека ?В одном из регистров процессора. В x86 это будет в [?]AX, в MIPS'ах $v0.
SashaMercuryВ.5 Параметры ранее помещённые в стек дальше будут затираться ? Они уже не нужны ?ээээ... дальше это когда? Но в общем да, когда функция завершена, все что выделялось для нее на стеке больше не нужно.
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38652872
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlSashaMercuryБ."T type derivation" встречаю не первый раз, подскажи как правильно переводить ?"приведение типа".
"приведение" это casting.

Type derivation - это порождение нового типа из данного.
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38653762
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyWhite Owlпропущено...
"приведение типа".
"приведение" это casting.

Type derivation - это порождение нового типа из данного.Да, но... Нету в нашем традиционном арго такого слова как "порождение типа". Поэтому я и предпочитаю переводить type derivation как "приведение типа". Хотя знать разницу между casting и derivation конечно надо.
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38653789
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlНету в нашем традиционном арго такого слова как "порождение типа". Поэтому я и предпочитаю переводить type derivation как "приведение типа". Хотя знать разницу между casting и derivation конечно надо.
Да мало ли чего нет. Нет устоявшейся терминологии - переводите по словарю. Зачем приплетать совершенно посторонний термин?
Термин приведение здесь вообще неуместен, т.к. он устоявшийся и означает преобразование значения из одного существующего типа в другой существующий тип.
А тут значений нет, а есть создание нового типа на основе существующего.
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38653967
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
White Owl SashaMercury В.4 Куда будет записан результат ? В вершину стека ? В одном из регистров процессора. В x86 это будет в [?]AX, в MIPS'ах $v0.

1.то есть фраза - "функция возвращает значение", несёт в себе смысл "функция записывает значение в выделенный(или в один из выделенных) регистр(ов) процессора" ?

2.
Код: plaintext
1.
int a=f(1,2);


кусок кода на который ссылается константный указатель f отработает, и запишет результат в регистр ax. Далее в переменную a будет записан результат из этого регистра.
Код: plaintext
1.
f(1,2);


Кусок кода на который ссылается f отработает, и запишет результат в ax ?
2.1 Как мне прочитать что туда записала функция, если я не сделаю это сразу ?
2.2 Если ниже я выполню:
Код: plaintext
1.
g(2,3);


куда будет записан результат ?

2.3Вообще, как-то отмечается что возвращённое значение уже использовано(прочитано из регистра) ?
2.4 Функция явно(на уровне регистров), может возвращать (записывать в регистр) только одно значение ? Или она может записывать в два регистра, fe.
2.5 Если это так(2.4), то во всех языках программирования, при спуске на уровень регистров, мы увидим что функция возвращает только одно значение ?

ps понимаю про неявный возврат через указатель(на начало строки например)
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38653971
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury1.то есть фраза - "функция возвращает значение", несёт в себе смысл "функция записывает значение в выделенный(или в один из выделенных) регистр(ов) процессора" ?
Стандарт ничего про регистры и стек не говорит.
Так что это зависит от платформы.
На многих платформах например параметры часто передаются не через стек, а через регистры.
Точно так же возвращаемое значение может передаваться через стек (хотя обычно используется регистр).

SashaMercury2.2 Если ниже я выполню:
Код: plaintext
1.
g(2,3);



куда будет записан результат ?
С точки зрения С, результат никуда не будет записан.
С точки зрения машинного кода, например на платформе x86 результат будет записан функцией в регистр EAX, а вызывающий код его проигнорирует. Т.е. он будет утерян.

ЗЫ. Раз вас такие вопросы интересуют, то лучше параллельно поизучайте ассемблер, чем гадать на форуме
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38653973
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury2.4 Функция явно(на уровне регистров), может возвращать (записывать в регистр) только одно значение ? Или она может записывать в два регистра, fe.
Например на 32-битных платформах при возврате 64-битного значения может быть использовано 2 регистра.
Но я вас уверяю, при программировании на С/С++ вам должно быть все равно сколько и какие регистры будут задействованы.
Компилятор сгенерирует наиболее эффективный код для передачи значения.
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38653977
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky Стандарт ничего про регистры и стек не говорит.
Так что это зависит от платформы.
На многих платформах например параметры часто передаются не через стек, а через регистры.
Точно так же возвращаемое значение может передаваться через стек (хотя обычно используется регистр).

Как тогда с точки зрения С понимать фразу "функция возвращает значение" ?
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38653985
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryКак тогда с точки зрения С понимать фразу "функция возвращает значение" ?
Буквально понимать :)

Стандарт описывает "что делать" (передать значение), а не "как делать" (записать в регистр)
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38653986
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryAnatoly Moskovsky Стандарт ничего про регистры и стек не говорит.
Так что это зависит от платформы.
На многих платформах например параметры часто передаются не через стек, а через регистры.
Точно так же возвращаемое значение может передаваться через стек (хотя обычно используется регистр).

Как тогда с точки зрения С понимать фразу "функция возвращает значение" ?Это значит, что если у тебя есть в программе:
Код: plaintext
1.
2.
3.
int foo();

int a = foo();

То в переменную запишется результат функции вне зависимости от используемого компилятора и используемой платформы.
Как это происходит на уровне процессора - зависит от компилятора и используемой платформы.


В общем, тебе явно пора браться за ассемблер и теорию компиляторов.
По ассемблеру ищи Питера Абеля "Ассемблер". Он довольно старенький, но все что нужно рассказывает.
По теории компиляторов лучшая книга: Альфред Ахо "Компиляторы".
Как это все работает вместе (и многом другом) ищи Эндрю Таненбаума "Современные операционные системы".
Их все переводили и издавали на русском. Но лучше купи оригиналы на Амазоне, меньше будет терминологической путаницы. Термины переводить занятие сложное и неблагодарное. Лучше понять что они означают и просто использовать.
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38655219
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky Тип void ведет себя как неполный, т.е. имеет те же ограничения (неизвестен размер, объявлять можно только указатель ..). При этом его нельзя сделать полным, т.е. это его изначальное и окончательное состояние.

если я напишу
авторvoid smth_f()
{...}

f(...)


1.Никакого значения никуда записано не будет по выходу из функции ?
2.
Код: plaintext
1.
2.
f1()
{...}



и

Код: plaintext
1.
2.
f2(void)
{...}



аналогичны ?
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38656113
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury1.Никакого значения никуда записано не будет по выходу из функции ?
Если ты сделаешь:
Код: plaintext
1.
2.
void f();
int a = f();


то компилятор выругается.


SashaMercury2.
Код: plaintext
1.
2.
f1()
{...}



и

Код: plaintext
1.
2.
f2(void)
{...}



аналогичны ?Нет.
Ты можешь задавать параметры для f1() , но совсем не можешь задавать для f2().
Код: plaintext
1.
2.
int f1();
int f3(...);

Вот эти два определения аналогичны.
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38656135
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl
Код: plaintext
1.
2.
int f1();
int f3(...);

Вот эти два определения аналогичны.стоит, наверное, отметить, что в С++ аналогии обратные, т.е. f1() и f2( void ) имеют одинаковые сигнатуры.
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38656254
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychWhite Owl
Код: plaintext
1.
2.
int f1();
int f3(...);

Вот эти два определения аналогичны.стоит, наверное, отметить, что в С++ аналогии обратные, т.е. f1() и f2( void ) имеют одинаковые сигнатуры.
Да, это одна из разниц между С и С++.
Код: plaintext
1.
2.
3.
int f1();
int f2(void);   == f1() в С++
int f3(...);    == f1() в С
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38656283
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owlegorychпропущено...
стоит, наверное, отметить, что в С++ аналогии обратные, т.е. f1() и f2( void ) имеют одинаковые сигнатуры.
Да, это одна из разниц между С и С++.
Код: plaintext
1.
2.
3.
int f1();
int f2(void);   == f1() в С++
int f3(...);    == f1() в С


В смысле, что имелось ввиду?
http://ideone.com/SHVTqA
На C вообще выдает ошибку на int f3(...);
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38656284
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маленькая поправка.

() не совсем то же самое что и (...) в С.
В С простой (...) не разрешен - нужен хотя бы один именованный аргумент перед ...
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38656436
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyМаленькая поправка.

() не совсем то же самое что и (...) в С.
В С простой (...) не разрешен - нужен хотя бы один именованный аргумент перед ...В С? Разрешен.
Ключик -fallow-parameterless-variadic-functions и никаких запретов :)
А в С++ и ключиков не нужно...
...
Рейтинг: 0 / 0
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
    #38656487
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlВ С? Разрешен.
Ключик
В стандартном С это UB.
А ключиков можно изобрести много, это не делает код стандартным.
...
Рейтинг: 0 / 0
25 сообщений из 262, страница 4 из 11
Форумы / C++ [игнор отключен] [закрыт для гостей] / INTERNATIONAL STANDARD ISO/IEC ISO/IEC 9899:201x Вопросы и комментарии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]