LINUX.ORG.RU

История изменений

Исправление shdown, (текущая версия) :

Не надо рекламировать плохие сайты. И не буду я по твоим ссылкам ходить, раз ты сам не можешь нормально рассказать что хотел.

Я, значит, должен сам перевести эту статью на русский язык для тебя? Или скопипастить то, что выдаёт Google Translate? Или скопипастить английский текст? Я не понимаю. “Action at a distance” означает «действие на расстоянии». Что это такое и почему это антипаттерн, там рассказывается.

Гарантии и так и так нет.

Почему нету?

#define X
int main(void)
{
}
На поведение этой программы есть гарантия с точки зрения стандарта? Есть. А на поведение этой — нету:
#define _X
int main(void)
{
}

В другой версии компилятора могут быть другие ключевые слова, хоть с подчёркиванием, хоть без.

Если эта версия будет соблюдать тот же стандарт, то не могут. В стандарте указано, какие идентификаторы — зарезервированные, все остальные можно использовать. Если какой-то из них нельзя, то реализация компилятора не conforming.

реализацией

Что это такое вообще?

В данном случае это означает «стандартная библиотека и прочие кишки, необходимые для запуска conforming программ на Си». Я уже приводил в пример символы _GLOBAL_OFFSET_TABLE_ и _IO_stdin_used (они начинаются с _X, по-другому быть не могло).

> Кто ещё может являться авторитетным источником этого понятия?

Мануал к компилятору.

> Я что-то не видел, чтобы они публиковали

Ну, протри глаза, у gcc есть большой мануал с описанием его поведения в зависимости от опций.

> И ты по факту споришь со вторым тезисом

Не приписывай мне свои выдумки. Я спорю с тем, что ты, вместо спецификаций конкретного компилятора, используешь практически бесполезную графоманию в качестве источника информации о языке.

Интересно. Значит, есть «мануал» или «спецификации конкретного компилятора». Но эти документы ссылаются на сишный стандарт, иногда только говоря, что в этом случае то или иное поведение становится определено. А где там написано, что можно определять _X?

Исправление shdown, :

Не надо рекламировать плохие сайты. И не буду я по твоим ссылкам ходить, раз ты сам не можешь нормально рассказать что хотел.

Я, значит, должен сам перевести эту статью на русский язык для тебя? Или скопипастить то, что выдаёт Google Translate? Или скопипастить английский текст? Я не понимаю. “Action at a distance” означает «действие на расстоянии». Что это такое и почему это антипаттерн, там рассказывается.

Гарантии и так и так нет.

Почему нету?

#define X
int main(void)
{
}
На поведение этой программы есть гарантия с точки зрения стандарта? Есть. А на поведение этой — нету:
#define _X
int main(void)
{
}

В другой версии компилятора могут быть другие ключевые слова, хоть с подчёркиванием, хоть без.

Если эта версия будет соблюдать тот же стандарт, то не могут. В стандарте указаны, какие идентификаторы — зарезервированные, все остальные можно использовать. Если какой-то из них нельзя, то реализация компилятора не conforming.

реализацией

Что это такое вообще?

В данном случае это означает «стандартная библиотека и прочие кишки, необходимые для запуска conforming программ на Си». Я уже приводил в пример символы _GLOBAL_OFFSET_TABLE_ и _IO_stdin_used (они начинаются с _X, по-другому быть не могло).

> Кто ещё может являться авторитетным источником этого понятия?

Мануал к компилятору.

> Я что-то не видел, чтобы они публиковали

Ну, протри глаза, у gcc есть большой мануал с описанием его поведения в зависимости от опций.

> И ты по факту споришь со вторым тезисом

Не приписывай мне свои выдумки. Я спорю с тем, что ты, вместо спецификаций конкретного компилятора, используешь практически бесполезную графоманию в качестве источника информации о языке.

Интересно. Значит, есть «мануал» или «спецификации конкретного компилятора». Но эти документы ссылаются на сишный стандарт, иногда только говоря, что в этом случае то или иное поведение становится определено. А где там написано, что можно определять _X?

Исправление shdown, :

Не надо рекламировать плохие сайты. И не буду я по твоим ссылкам ходить, раз ты сам не можешь нормально рассказать что хотел.

Я, значит, должен сам перевести эту статью на русский язык для тебя? Или скопипастить то, что выдаёт Google Translate? Или скопипастить английский текст? Я не понимаю. “Action at a distance” означает «действие на расстоянии». Что это такое и почему это антипаттерн, там рассказывается.

Гарантии и так и так нет.

Почему нету?

#define X
int main(void)
{
}
На поведение этой программы есть гарантия с точки зрения стандарта? Есть. А на поведение этой — нету:
#define _X
int main(void)
{
}

В другой версии компилятора могут быть другие ключевые слова, хоть с подчёркиванием, хоть без.

Если эта версия будет соблюдать тот же стандарт, то не могут. В стандарте указаны, какие идентификаторы — зарезервированные, все остальные можно использовать. Если какой-то из них нельзя, то реализация компилятора не conforming.

реализацией

Что это такое вообще?

В данном случае это означает «стандартная библиотека и прочие кишки, необходимые для запуска conforming программ на Си». Я уже приводил в пример символы _GLOBAL_OFFSET_TABLE_ и _IO_stdin_used (они начинаются с _X, по-другому быть не могло).

> Кто ещё может являться авторитетным источником этого понятия?

Мануал к компилятору.

> Я что-то не видел, чтобы они публиковали

Ну, протри глаза, у gcc есть большой мануал с описанием его поведения в зависимости от опций.

> И ты по факту споришь со вторым тезисом

Не приписывай мне свои выдумки. Я спорю с тем, что ты, вместо спецификаций конкретного компилятора, используешь практически бесполезную графоманию в качестве источника информации о языке.

Интересно. Значит, есть «мануал» или «спецификации конкретного компилятора». Но эти документы ссылаются на сишный стандарт, иногда только говоря, что в этом случае то или иное поведение становится определено. А где там написано, что можно определять _X?

Исходная версия shdown, :

Не надо рекламировать плохие сайты. И не буду я по твоим ссылкам ходить, раз ты сам не можешь нормально рассказать что хотел.

Я, значит, должен сам перевести эту статью на русский язык для тебя? Или скопипастить то, что выдаёт Google Translate? Или скопипастить английский текст? Я не понимаю. “Action at a distance” означает «действие на расстоянии». Что это такое и почему это антипаттерн, там рассказывается.

Гарантии и так и так нет.

Почему нету?

int X;
int main(void)
{
}
На поведение этой программы есть гарантия с точки зрения стандарта? Есть. А на поведение этой — нету:
int _X;
int main(void)
{
}

В другой версии компилятора могут быть другие ключевые слова, хоть с подчёркиванием, хоть без.

Если эта версия будет соблюдать тот же стандарт, то не могут. В стандарте указаны, какие идентификаторы — зарезервированные, все остальные можно использовать. Если какой-то из них нельзя, то реализация компилятора не conforming.

реализацией

Что это такое вообще?

В данном случае это означает «стандартная библиотека и прочие кишки, необходимые для запуска conforming программ на Си». Я уже приводил в пример символы _GLOBAL_OFFSET_TABLE_ и _IO_stdin_used (они начинаются с _X, по-другому быть не могло).

> Кто ещё может являться авторитетным источником этого понятия?

Мануал к компилятору.

> Я что-то не видел, чтобы они публиковали

Ну, протри глаза, у gcc есть большой мануал с описанием его поведения в зависимости от опций.

> И ты по факту споришь со вторым тезисом

Не приписывай мне свои выдумки. Я спорю с тем, что ты, вместо спецификаций конкретного компилятора, используешь практически бесполезную графоманию в качестве источника информации о языке.

Интересно. Значит, есть «мануал» или «спецификации конкретного компилятора». Но эти документы ссылаются на сишный стандарт, иногда только говоря, что в этом случае то или иное поведение становится определено. А где там написано, что можно определять _X?