|
|
|
|
|
|
|
Вернуться
| 1 Петров Владимир Рудольфович, 14 сентября 2023 г. 13:58:36 | |
--><!-- ---> <img src=xxx:x onerror=javascript:alert(1)> --> --><!-- --\x00> <img src=xxx:x onerror=javascript:alert(1)> --> --><!-- --\x21> <img src=xxx:x onerror=javascript:alert(1)> --> --><!-- --\x3E> <img src=xxx:x onerror=javascript:alert(1)> -->
|
|
|
| 2 Петров Владимир Рудольфович, 14 сентября 2023 г. 13:57:49 | |
|
'`"><\x3Cscript>javascript:alert(1)</script>
|
|
|
| 3 Петров Владимир Рудольфович, 14 сентября 2023 г. 13:55:44 | |
|
<a href="https://ya.ru">test</a> [b]test[/b]
|
|
|
| 4 Егоров Илья Валерьевич, 10 октября 2019 г. 18:16:20 | |
Поправка к предыдущему: #include, конечно же, а не #import. Можно также упомянуть, что #define используется для определения флагов и затем проверки их через #ifdef / #if / ..., позволяя в одном исходнике сочетать коды для разных платформ, но это уже тема полезности препроцессора как такового в промышленной разработке.
|
|
|
| 5 Егоров Илья Валерьевич, 10 октября 2019 г. 17:47:03 | |
Более подробно: Макросы — это фича, которую дает препроцессор. Препроцессор ничего не знает о языке, он умеет работать только с текстом => он не умеет складывать, вычитать, прочие преобразования делать. Вы даже можете использовать препроцессор вне компилятора для обработки текстов любого рода, на любых языках: поищите в сети filepp, если заинтересует (все те же #define, #import и подобные, что и для Си, но юзабельно хоть даже для Java). Соответственно, #define используется для замены одного текста на другой, не более того. Наглядный пример: #include <iostream> #define BEGIN int main() { using namespace std; #define END return 0;} #define PRINT(x) cout << (x) << endl BEGIN PRINT("Hello, World!"); END
|
|
|
| 6 Странник, 10 октября 2019 г. 17:34:00 | |
|
Про inline не знал, спасибо за разъяснение.
|
|
|
| 7 Егоров Илья Валерьевич, 10 октября 2019 г. 17:16:01 | |
Макрос напрямую подставляет значение в указанную вами формулу. Т.е. вы получаете при подстановке: (5-9>=0) ? 5-9:-5-9. Заметьте, что в конце вы отрицаете не результат вычитания, а лишь первый член. Поэтому при использовании макросов старайтесь использовать скобки (но лучше вообще не используйте макросы и обходитесь простыми функциями с модификатором inline). Вот этот уже будет работать корректно: #define abs(x) ((x)>=0) ? (x):-(x)
|
|
|
| 8 Странник, 10 октября 2019 г. 15:52:45 | |
Кто-нибудь мог бы объяснить, почему данная конструкция работает не корректно? Пример: abs(5-9)
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |