-
- STMовский куб такое же генерит - Звepoящep(19.10.2022 17:36)
- Я тоже так делаю. С помощью такого, можно реализовать подобия приват/паблик IBAH(281 знак., 19.10.2022 12:19)
- На С нет никакого смысла ограничивать видимость макросов. Хотите
инкапсуляцию и ограничение видимости - пишити на языках, которые их
поддерживают. - VladislavS.(19.10.2022 11:20)
- Но сначала не мешало бы разобраться, зачем хотите инкапсуляцию и
ограничение видимости. Это вообще прилично хотеть такие вещи? :-) - SciFi(19.10.2022 11:42)
- При написании библиотечного кода наружу должен только интерфейс
торчать. При ООП, само собой, тоже, но это не про сишечку. - VladislavS.(19.10.2022 15:24)
- А потом нужно дополнить либу функцией, которой сильно не хватает, и
облом. Редактировать исходники не вариант, потому что они
обновляются. Короче непонятный анонизм, который решается нормальной
документацией, где описан стабильный интерфейс и отдельно
версия-специфичные детали. - =AlexD=(19.10.2022 17:43)
- А если все кишки торчат наружу исходпики для добавления функции не
надо редактировать? - VladislavS.(19.10.2022 19:03)
- Не надо, оформляешь отдельным файликом и алга. Придется следить за
версиями, но практика показывает, что внутренности либ (модель
данных) меняются крайне редко и очень незначительно. - =AlexD=(19.10.2022 19:53)
- Надеюсь, вы это не серьёзно? Ибо это пооный ахтунг. - VladislavS.(20.10.2022 08:10)
- Святотатствую, ага. Я же не говорю, что это должна быть стандартная
практика. Тем не менее подобные случаи бывают. И эти ваши анальные
огораживания сильно мешают. - =AlexD=(20.10.2022 08:12)
- Не мешают, а защищают. Папу в папу нельзя. - VladislavS.(20.10.2022 08:21)
- Святотатствую, ага. Я же не говорю, что это должна быть стандартная
практика. Тем не менее подобные случаи бывают. И эти ваши анальные
огораживания сильно мешают. - =AlexD=(20.10.2022 08:12)
- Надеюсь, вы это не серьёзно? Ибо это пооный ахтунг. - VladislavS.(20.10.2022 08:10)
- Не надо, оформляешь отдельным файликом и алга. Придется следить за
версиями, но практика показывает, что внутренности либ (модель
данных) меняются крайне редко и очень незначительно. - =AlexD=(19.10.2022 19:53)
- А если все кишки торчат наружу исходпики для добавления функции не
надо редактировать? - VladislavS.(19.10.2022 19:03)
- А потом нужно дополнить либу функцией, которой сильно не хватает, и
облом. Редактировать исходники не вариант, потому что они
обновляются. Короче непонятный анонизм, который решается нормальной
документацией, где описан стабильный интерфейс и отдельно
версия-специфичные детали. - =AlexD=(19.10.2022 17:43)
- Простейший пример, что придумал: АЦП и SPI должны знать длину поступающих данных, а наверх идут уже значения (напряжения, попугаев, ... ) . Dingo(507 знак., 19.10.2022 14:13)
- Неприлично когда наоборот) - Cкpипaч(19.10.2022 11:58)
- При написании библиотечного кода наружу должен только интерфейс
торчать. При ООП, само собой, тоже, но это не про сишечку. - VladislavS.(19.10.2022 15:24)
- Но сначала не мешало бы разобраться, зачем хотите инкапсуляцию и
ограничение видимости. Это вообще прилично хотеть такие вещи? :-) - SciFi(19.10.2022 11:42)
- А что будет, если Tyмблep(112 знак., 19.10.2022 10:32)
- в GCC обнаружить подобное иногда помогает флаг -fno-common - Vit(19.10.2022 12:11)
- Однако static в разных файлах -
нормальнодопустимо, и для С++ в namespace тоже. В чём опасность? - Dingo(19.10.2022 10:36)- Опасность такая: Tyмблep(849 знак., 19.10.2022 12:30)
- +100 (про совпадение имён)! Насколько припоминаю с древних времён ( в тех же почивших BORLAND -продуктах ) компиляторы ругались на сей факт! SERGHIO(27 знак., 19.10.2022 13:08)
- В каких разных? Особо одаренные программисты используют static в .h файлах. - VLLV(19.10.2022 11:12)
- Опасность такая: Tyмблep(849 знак., 19.10.2022 12:30)
- Программа, не содержащая комментариев, лучший повод для Вашего
увольнения. (с) - Kpoк(19.10.2022 08:53)
- Ну, тогда я могу быть спокоен. :-> - Dingo(19.10.2022 10:23)
- Очертил для себя границы применения: если в одном файле - нет
смысла, проще в используемом С-файле задать; разумно тогда, когда
область видимости используется в нескольких *.c и разумно закрыть
для верхних уровней деталей реализации (а то ручки-то постоянно
тянутся). - Dingo(19.10.2022 08:00)
- Лично меня раздражают попытки искусственного ограничения видимости,
не вижу смысла. Вы то чего боитесь? Ну максимум, что можно
нахомутать с переменными, это впендюрить обращение к переменной из
прерывания и из основного цикла, не объявив volatile. А если ручки
тянутся, то по ним нужно бить линейкой. - VLLV(19.10.2022 08:26)
- +1. Коллега занимается решением проблемы, которой нет. - SciFi(19.10.2022 08:30)
- Возможно, я пытаюсь этим решить другую проблему. Надо обдумать. - Dingo(19.10.2022 10:21)
- +1. Коллега занимается решением проблемы, которой нет. - SciFi(19.10.2022 08:30)
- Лично меня раздражают попытки искусственного ограничения видимости,
не вижу смысла. Вы то чего боитесь? Ну максимум, что можно
нахомутать с переменными, это впендюрить обращение к переменной из
прерывания и из основного цикла, не объявив volatile. А если ручки
тянутся, то по ним нужно бить линейкой. - VLLV(19.10.2022 08:26)
- Главное, чтобы был какой-то смысл. Если это проще или быстрее или понятнее или ещё что, - почему нет? В Си (т.е. в ассемблере) сделать можно всё, что угодно. Плохо только выкрутасы ради самих выкрутасов. Ибо "Все мне позволительно, но не все полезно; все мне позволительно, но ничто не должно обладать мною". )) - vpv.vpv(19.10.2022 07:42)
- Недавно включал С-файлы в C-файл. Не спрашивайте зачем:) Vit(131 знак., 19.10.2022 07:28)
- Расширение файла никак не влияет на компилятор. Важно лишь
содержимое файла. - Ale3000(19.10.2022 09:39)
- Можно всё, что не запрещено УК. :) - VladislavS.(19.10.2022 11:24)
- Зато если файл с расширением *.c, то его можно включить в проект в IDE, и поставить крыжик "не компилировать" - будет работать навигация:) - Vit(19.10.2022 09:54)
- Прекрасная возможность не шагать строем, а проявить
индивидуальность. Надо дать всем исходникам расширение .exe! - SciFi(19.10.2022 09:43)
- .com более созвучно с СИ - abivan(19.10.2022 14:28)
- У меня тоже было, включаемый содержит static const struct и выбор макросом флага прерывания, тактирования, и номера прерывания. Нечто вроде недавно расспрашиваемого мной механизма consteval Dingo(1250 знак., 19.10.2022 07:40)
- Расширение файла никак не влияет на компилятор. Важно лишь
содержимое файла. - Ale3000(19.10.2022 09:39)