PSR1257 Это уже предусмотрено, о чем я писал выше. Важные решения принимает только группа адекватных подсистем. Достоинства и недостаток в том что эти подсистемы частично пишутся людьми в форме кода и если проверить наличие локальных static переменных еще можно то многие другие вещи нельзя. Я хотел бы сделать более качественную архитектуру.
NoName Интересно узнать хотя бы одну... Вы в С-коде не используете косвенные вызовы(вызовы ф-ции по указателю)?
NoName капец. С - гарантировано небезопасный язык. безопасность в нем уменьшена задля гибкости и эффективности. С++ практически такойже в этом отношении. и вы тут говорите о какихто разрешениях и требованиях. безопасность проводилась в паскалевой ветке алгола. в модуле и, особенно, аде безопасность статическая и динамическая вообще одно из основных требований. но и вынь вам не подходит. и не только изза зверинца. и линь тоже.
Впервые такое слышу. Можно подробнее? В какой области такое требование? И что это за мистическая проверка? Какая фирма(корпорация) выдвигает такие требования?
и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...и тестировать...
spa Вы - дебил? Предлагаю вам пополнить ряды элиты васма, которая "только читает, но уже не пишет". Без ваших тупых постов на васме станет лучше. Инфа 100%
Зачем же так жестоко? Тестирование не гарантирует отсутствие ошибок: язык императивный, функции могут хранит состояние которое в тестах и реальном мире может быть разным.
Rainghost если бы да кабы. есть языки специально спроектированные для безопасности. есть даже для параноидальной безопасности. там каждый вызов, каждое обращение к памяти, каждое преобразование типов строго описано, а в коде окружается кучей проверок. вероятность случайной ошибки в них очень мала. например, ада разрабатывалась по заказу ам военных. по их требованиям. на модулах пишутся проги к самолетам. вирт когда писал свой оберон, он уменьшил строгость модулы, но не сильно. потому, оберон тоже неплох в качестве безопастности. из осей - тут все зависит от задачи. может быть и кнх (нет прямых связей между модулями. все сообщение через каналы. и если отваливается модуль, то только 1 и может быть, например, перезапущен.), может быть даже и оберон форкнуть. вобщем, если идет речь о безопасности, то тут надо думать глубже пары отдельных алгоритмов на асме.
J0E На си можно писать "безопасный код" толькое если. 1. Очень продуманна архитектура приложения. 2. Писать предельно аккуратно, буквально параноидально проверяя все и все. А так как люди не идеальны, то: 3. Тестировать, много, много раз. Конечно вероятность фейла останется, но как говорится она будет "крайне мала". intel_x128 Посмотрел ваши посты, дебил здесь скорее вы. Уже разобрались с глобальными переменными? http://wasm.ru/forum/viewtopic.php?id=33093
Из-за ошибки переполнения 32х байт самолет уже падал, это мало? Какой смысл в тесте фукнции которая при одних входных параметрах может вернуть разный ответ. На С можно писать чистые функции, а стало быть и код поддающийся верификации, автор топика про это в курсе потому что упоминал отслеживание стаических переменных, дкмаю если бы тесты решали его проблему топика бы не было.
групировка переменных и доступ к ним через функции get/set read-only никак не мешает применению принципов ООП - просто метод set или отсутствует или постоянно возвращает ошибку для значений отличных от заданного нагуглите исходники доса 6.0 - там есть cow - реализация символьной мини винды посмотрите как тыщу лет назад микрософт расширил возможности аналога такого же компилятора - разница только в том что современные компиляторы навязывают парадигму разработки, в то время как там вы вольный сокол и все вкусности можно сделать ручками
featurelles ну, когда исследовали обломки упавшего самолета на осколках бортового компьютера нашли несомненные следы переполнения. единица так и вросла в флаг cf.
qqwe это же ошибка программы, а не языка си, так что я все равно не понял что хотел сказать J0E, да и вообще он говорит про 32 байта
spa да там вообще утверждение из репертуара блэкбима. переполнение - абсолютно нормальная вещь. оно возникает при арифметических операциях, сдвигах, изменении знака, оно используется при сложении/вычитании длинных чисел. и тут на тебе, съехали - в падении самолета виновато переполнение регистра. какое из 3 миллиардов за последнюю секунду? (и "а был ли мальчик?" не, я понимаю, что проще всего все повесить на безответный комп. олухи ж все равно ничего не поймут) тут даже вопрос возникает - а знает ли жое что такое переполнение регистра, для чего оно нужно и как используется? а если не знает, то что он делает на форуме както связанном с асмом, а не с детскими лошадками?
ну это примерно так - берете вы студию и прежде чем приступите к написанию кода она задаст вам несколько уточняющих вопросов в виде диалоговых окон и предоставит солидную болванку будущего приложения, в частности опирающуюся на механизм оконных процедур в борланд си это все далеко не очевидно и что этого добиться нужно изрядно потрудиться пиша код опять-же смотрите исходники cow
Вообще хочу сказать, что си это очевидно не тот выбор для таких задач, для си же просто много надо будет проверок, и много чего надо будет понимать "как это работает".