@reactos_ru

Страница 437 из 1049
Gradi
21.11.2017
20:03:27
Вот есть так называемые INCLUDE GUARD'Ы задача которых сделать так, чтобы заголовочный файл включался только один раз в исходник. Так вот вопрос. Можно ли в абсолютно каждый заголовочный файл пихать гуарды или есть ситуации, когда они вредят?

Google
Gradi
21.11.2017
20:04:51
вредят когда коллизия дефайна с другим
А можно пример? Чёт слабо представляю

Gradi
21.11.2017
20:05:38
Используй #pragma once, если компилятор поддерживает.
Так вопрос был не в том как их использовать, а когда.

Scarf
21.11.2017
20:06:09
А можно пример? Чёт слабо представляю
Два одинаковых названия заголовочных файла, и два одинаковых define

Один из заголовков не включится

С pragma такого не должно быть

Gradi
21.11.2017
20:07:16
Два одинаковых названия заголовочных файла, и два одинаковых define
А причём тут гуарды? Как ты включишь два одинаковых инклуда? #include <foo.h> #include <foo.h>

Alejandro
21.11.2017
20:07:48
Помню, что на какой-то икс-коробке x86
Xbox и xbox one построены на х86 чипах

Stas'M
21.11.2017
20:08:04
Ну это я уже понял)

Scarf
21.11.2017
20:08:10
Вот классический include guard: #ifndef H_GRANDFATHER #define H_GRANDFATHER struct foo { int member; }; #endif

Google
Scarf
21.11.2017
20:09:29
Вот если будет еще один файл с H_GRANDFATHER, он не включится

Потому лучше пользоваться #pragma once

Gradi
21.11.2017
20:13:31
Вот если будет еще один файл с H_GRANDFATHER, он не включится
1. Т.е. если у нас есть два файла с одинаковым именем, но в разных папках, то при их включении #include <abs/foo.h> #include <zzz/foo.h> таким образом гуарды в них момешают включить второй? 2. Что если использовать имя файла + какой-нибудь случайный хеш? 3. #pragma once защитит от ситуации 1? 4. gcc, g++, clang поддерживают pragma once? Просто насколько помню, это была чисто фича компилятора от майкрософта.

Scarf
21.11.2017
20:14:12
1 Да 2 Ничего не мешает, кроме неудобства 3 Да 4 Да

Gradi
21.11.2017
20:15:39
1 Да 2 Ничего не мешает, кроме неудобства 3 Да 4 Да
Таким образом мы плавно подошли к главному вопросу: А почемы бы не переложить бремя заботы о заголовочных файлов на сам компилятор? Пусть он следит, сколько раз он включил файл.

Gradi
21.11.2017
20:38:10
Хорошо. Более менее понял. Второй вопрос. Как правильно обрабатывать ошибки в с? К примеру. void test() { char *buffer; buffer = malloc(...); if (buffer == NULL) { // Ошибка, должны как-то сообщить // допустим вернуть код ошибки } char *results = processBuffer(buffer); if (results == NULL) { // Ошибка при работе с буфером // Для начала должны удалить ранее выделенный free(buffer); // И опять что-то сообщить // желательно чтобы мы могли отличить // что ошибка произошла при работе с буфером } // И так далее } Т.е чем дальше в лес, тем больше нам надо будет подчищать и код будет увеличиваться в размерах и становиться не читаемым.

Stas'M
21.11.2017
20:41:20
Функции в помощь

Вообще всё надо абстрагировать, тогда не запутаешься

Scarf
21.11.2017
21:01:34
Это проверка на ошибку

@jeditobe @AlexFails

Digital
21.11.2017
21:02:22
if (!NT_SUCCESS(errCode)) { TRACE("Status 0x%08x obtaining FileStandardInformation for source\n", errCode); BaseSetLastNTError(errCode);

Краб ходит E7
21.11.2017
21:02:36
Мы не занимаемся вебом. И reactjs никак к нам не относится.

Google
Краб ходит E7
21.11.2017
21:03:45
Там не веб ?
Они всё-равно одно от другого не отличают.

Digital
21.11.2017
21:06:05
порежут тебя зожом и библией добъют

Краб ходит E7
21.11.2017
21:07:38
Ты её видел? Свяжу её, поморю голодом пару дней, потом разведу около неё костёр, и... >:-)

... и буду жарить шашлык. ^__^

Digital
21.11.2017
21:08:23
хотя использование плоти и крови для кормления спортсменов может и даст результат и опятьже кто проиграет того на крест и готов источник плоти и крови

я изобрёл православный зож

Alex Фэils?︙
21.11.2017
21:18:53
Она вышла

Digital
21.11.2017
21:24:29
Она вышла
мы с @IvUyr работаем чисто

Alex
21.11.2017
21:30:29
да что ж это за боты такие

научились ставить биографию, находить себе имя

Alex
21.11.2017
21:30:35
ставить много аватарок

но почему они не научились брать аватарки с разрым разрешением

Scarf
21.11.2017
21:34:09
(и у тебя они тоже одинаковые)

Alex
21.11.2017
21:37:44
а...

Alejandro
22.11.2017
14:39:13
Чего молчим?

Alex Фэils?︙
22.11.2017
14:39:35
Сплю

Stas'M
22.11.2017
14:39:41
Делом заняты, баги репортим

Google
Alejandro
22.11.2017
14:40:21
Галят написал мне: Новое - это забытое старое ) https://github.com/reactos/reactos-deprecated-gitsvn-dont-use/pull/30

Stas'M
22.11.2017
14:40:51
Хе) Ну всё верно, он мне тоже писал, что ещё не завершил работу над USBOHCI

Admin
ERROR: S client not available

Stas'M
22.11.2017
15:09:35
Эх... всё это ещё придётся синхронить с новой репой

Alejandro
22.11.2017
15:17:15
И там конца края нет исправлениям

Stas'M
22.11.2017
15:19:39
Молитесь, чтобы Вадим не бросил это дело ?

Alejandro
22.11.2017
15:23:06
?

Лучше скинуть ему бабла

Чем молится

Stas'M
22.11.2017
15:23:59
Если скинуть, то есть риск, что без дальнейшей подпитки перестанет заниматься

Alejandro
22.11.2017
15:23:59
На баунтисорс можно денежку поместить например

Stas'M
22.11.2017
15:24:06
А так на энтузиазме)

Alejandro
22.11.2017
15:24:35
Через баунтисорс есть гарантия, что деньги он получит только по результату )

Stas'M
22.11.2017
15:24:54
Хе, хитро ?

Alejandro
22.11.2017
15:25:05
У него были финансовые проблемы, кстати

Так что денежка ему не помешает лишняя

Т9 подводит

Stas'M
22.11.2017
15:26:26
Альтруистичный Т9 ?

Так-с, отлично, багрепорта по WinPcap ещё не было

Google
Alejandro
22.11.2017
15:53:27
?

Он щас пилит за зарплату значительно ниже рыночной

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

Digital
23.11.2017
03:10:34
https://habrahabr.ru/post/342992/

Andre
23.11.2017
03:32:23
https://geektimes.ru/post/295685/?utm_source=telegram

Stas'M
23.11.2017
11:45:45
Угу

Пьер сказал, что по всей видимости, нужно chkdsk дорабатывать, ибо дров не принимает битую ФС

Один шаг для человека, огромный скачок для человечества

Максим
23.11.2017
11:52:58
привет из прошлого =)



Краб ходит E7
23.11.2017
11:54:22
Один шаг для человека, огромный скачок для человечества
Ага, главное не споткнууууубляаааногааааапомогитеуменяпереломааааа!

Страница 437 из 1049