Как работает этот & ldquo; привет мир! & Rdquo; программная работа?

Как указано Thomas Stjernegaard Jeppesen, вы можете использовать History.js для изменения параметров URL, пока пользователь перебирает ваши ссылки и приложения Ajax.

С тех пор прошло почти год, и History.js рос и стал более стабильным и кросс-браузерным. Теперь его можно использовать для управления состояниями истории в HTML5-совместимом, а также во многих браузерах с поддержкой HTML4. В этой демонстрации Вы можете увидеть пример того, как это работает (а также возможность попробовать свои функциональные возможности и ограничения.

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

Наконец, для подробного объяснения того, какие могут быть проблемы с использованием хэшей (и hashbangs), проверьте эту ссылку Бенджамина Луптона.

23
задан Connor 10 May 2014 в 21:20
поделиться

2 ответа

('yes', *"no", **main, *********printf) 

оценивается как *********printf, потому что оператор запятой оценивает свои операнды и возвращает значение последнего выражения. *********printf равно printf, поскольку разыменование указателя на функцию приводит к тому же указателю на функцию; это ничего не делает.

Затем, результат первой круглой скобки, printf, применяется к («hello world! \ N»), что приводит к выводу текста на экран. Функция printf возвращает количество написанных символов. Затем это число умножается на 0, и произведение возвращается основной функцией.

12
ответ дан Josh Lee 10 May 2014 в 21:20
поделиться

На самом деле две вещи:

  1. Указатели функций не разыменовываются так же, как другие указатели. * main == main
  2. Список, разделенный запятыми, возвращает значение последнего элемента в списке

Итак, если мы упростим указатели:

int main(void)
{ 
    return('yes', *"no", main, printf) ("hello world!\n") *0; 
}

И используя последний элемент в списке в качестве значения список

int main(void)
{ 
    return printf("hello world!\n") *0; 
}

printf возвращает количество напечатанных символов

int main(void)
{ 
    return 13 *0; 
}

И 13 * 0 остается для читателя в качестве упражнения.

46
ответ дан 29 November 2019 в 01:16
поделиться
Другие вопросы по тегам:

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