нет, значит, как я понял, идея тут в том чтобы нам помогали код
писать чтобы его можно было вызвать частично во время и сразу после
компиляции и указали на ошибки, и мы сами решаем что хорошо что
плохо. OSCIL_Init мы никак не проверим без контроллера. а здесь идея чтобы вместе с компилятором вызывались и тесты, которые часть кода могут вызвать, выполнить условия и тут же сказать, выполнены ли они.
так же работают например ручные варнинки с сообщениями, когда что-то не так определено, типа warning: OCCCAL not defined in file freq.h, please, check it
и это для поиска тех ошибок что программист сам считает нужным искать.
а для ошибок времени выполнения есть assert(param), который просто вызывает управляемое падение проги и запрещает плохой программе работать в неисправленном виде со скрытыми багами.
все баги так не выловишь, просто вылавливается то что можно на стадии компиляции. мы сами добавляем правила для условных варнингов и сами решаем что с этим нам делать, оставлять или исправлять.