Почему этот фрагмент кода компилирует?

Почему следующее кодирует компиляцию?

#include <stdio.h>

int main(void) {
    getchar;
}
11
задан missingfaktor 8 January 2010 в 16:50
поделиться

2 ответа

Поскольку имена функций являются псевдонимами для функционирования указателей к тем функциям, которые сами по себе знакомы одинаковы как целые числа. Это семантически очень похоже на

#include <stdio.h>

int main(void) {
    42;
}

, это действительно, но бессмысленно.

28
ответ дан 3 December 2019 в 01:16
поделиться

Вот несколько достоинства вы упустили

  • Обновление в реальном времени: такие функции, как intellisense, будут автоматически обновляться между ссылками на проекты при изменении API
  • GoTo Definition: если у вас есть ссылка на сборку, GoTo Definition приведет вас к фактическому определению кода. Ссылка на сборку приведет к созданию подписи метаданных.
  • Найти все ссылки: обработает весь код в ссылках проекта для использования ссылки. Для ссылки на сборку вы увидите только использования в метаданных
  • Быстрый поиск (только 2010): Аналогично, чтобы найти все ссылки, просто лучше работает в P2P ссылке

В ответ на ваши недостатки

  • Да: загрузка проекта, как правило, медленнее, чем загрузка ссылки. С разумным количеством проектов, хотя эта разница во времени не является значительной и не должна влиять на вашу повседневную программу развития
  • Да: Добавление проекта к решению, как правило, медленнее, чем добавление ссылки. Разница, правда, в секундах и является единовременной стоимостью. Я считаю ошибкой рассматривать это как часть критериев.
-121--3171179-

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

При разработке игр мы, программисты, хотим расширить возможности разработчиков контента. Они не будут (это очень важно) смотреть на код. Период. Теперь и снова вы получаете технического художника или технического дизайнера, и они замечательны и не возражают против этого; но большинство авторов контента технически не склонны.

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

Подобная система (разветвленный диалог) требует представления в инструменте, который является относительно интуитивно понятным для использования. Например, можно было бы использовать систему визуальных сценариев Unreal's Kismet.

По существу, структуры данных (скорее всего, ветвящееся дерево, поскольку его легко представить/debug/etc.) будут созданы программистом, как и узлы, которые представляют объект в сценарии. Система с ее способностью связываться с мировыми объектами (более чем вероятно, также представленными узлами в визуальном сценарии) и т.д. будет затем создана и весь котенок caboodle связаны вместе в какой-то славный бит элегантного кода.

После всего этого дизайнер сможет создать визуальное представление ветвления диалога на языке визуального сценария. Это было бы специфическим для карты, более чем вероятно. Конечно, вы можете процедурно генерировать их; но, это скорее желание программиста, чем дизайнера.

Просто подумал, что я добавлю эту часть знаний и понимания.

EDIT: Замечен пример XML. Я не уверен, какие еще дизайнеры/художники/и т.д.почувствовать это; Но те, с которыми я работал над идеей прикосновения к текстовому файлу.

-121--2140022-

По той же причине 1; будет скомпилирован, getchar является только адресом функции. Результат оценивается, а затем отбрасывается. В спецификации языка он называется «оператором выражения»;

13
ответ дан 3 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: