Электроника и радиотехника => Цифровая техника => Тема начата: Nikopol от 06 Июнь, 2020, 04:08
Название: Изучаю С, помогите разобраться с кодом.
Отправлено: Nikopol от 06 Июнь, 2020, 04:08
Привет Изучаю С вот по этому курсу (https://tproger.ru/video/clang-for-beginners-videos/?autoplay=1). И на уроке:
Возник вопрос Там используются константы: Но если в место констант использовать операторы То получим тоже самое. В чем разница? И где используется первое написание и где второе?
Мой код для проверки во такой:
На выходе вот так:
В прикреплённых файлах бинарник, на линухе работает на винде не проверял. :)
Название: Re: Изучаю С, помогите разобраться с кодом.
Отправлено: Slabovik от 09 Июнь, 2020, 09:29
Я не особый знаток языка Цэ, но по моему скромному мнению, здесь разница заключается в том, что знак "#" означает, что следующее за ним является макрокомандой компилятору, а не командой непосредственно программы. Это используется для так называемой условной компиляции кусков кода, что в некоторых случаях удобно (например, при написании кроссплатформенной программы).
Код проверкидля выявления разницы получился неудачный по той причине, что P является константой и при компиляции в программу "укладывается" именно тот printf, который соответствует этому P, при этом другие printf в программе вовсе отсутствуют. В итоге получается видимость правильного исполнения программы (видимость - это с точки зрения пользователя, т.к. пользователь подразумевает другой функционал. С точки зрения компилятора всё работает совершенно правильно).
Вот здесь (https://docs.mql4.com/ru/basis/preprosessor/conditional_compilation) немного суховато, но подробнее раскрывается суть условной компиляции.
Название: Re: Изучаю С, помогите разобраться с кодом.
Отправлено: Nikopol от 09 Июнь, 2020, 22:39
Благодарю ;D
Название: Re: Изучаю С, помогите разобраться с кодом.
Отправлено: Slabovik от 09 Март, 2021, 10:09
Бродил по интернету, наткнулся на интересный приём. Просто оставлю ссылку - вдруг пригодится кому
Как подключить содержимое любых файлов для использования в коде C / C++ (https://habr.com/ru/post/545946/)
Как раз интересно в плане засовывания в микроконтроллеры какие-либо бинарные данные без их конвертации в hex.