Кресты / Говнокод #3230 Ссылка на оригинал

0

  1. 1
assert(!"Can't change this parameter.");

Запостил: k06a k06a, (Updated )

Комментарии (4) RSS

  • я в мелких личных тестовых программах вместо assert(0) таким пользуюсь. но только в очень мелких, бо gcc на такое ворнинг кидает.

    удобно, хотя и львиная доля народа (кто не читали K&R) не рубит как оно работает.
    Ответить
    • А что на этот счет говорили K&R ? О преобразовании строкового литерала к int ?
      Ответить
      • отрицание к поинтерам применимо: это есть проверка на НУЛЛность и возращает int 0 или 1.

        то чего азов не читавшие не знают: строковый литерал он есть синтаксически поинтер (на строку; в С - char *, C++ - char const *).

        ассерт видит поинтер, который по определение не НУЛЛ, с отрицанием. в результате условие всегда ложно: ассерт выполнится, выдаст эту строку в сообщении и завершит программу.

        я пользуюсь изредка таким вот так:

        FILE *f;
        f = fopen(file_name,"r");
        assert( f && "Can't open file" );


        для продакшн код - ни в коем случае. для мелочёвки пятиминутной - в самый раз.
        Ответить
  • Ы =) я такое всегда в пока незаимплеменченные методы вколбашиваю -- чтобы потом не проебать =)
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8