{"id":49,"date":"2008-05-02T14:26:06","date_gmt":"2008-05-02T13:26:06","guid":{"rendered":"http:\/\/netrix.org.pl\/index.php\/2008\/05\/02\/assert\/"},"modified":"2011-02-12T02:51:08","modified_gmt":"2011-02-12T01:51:08","slug":"assert","status":"publish","type":"post","link":"https:\/\/netrix.org.pl\/index.php\/2008\/05\/02\/assert\/","title":{"rendered":"Assert"},"content":{"rendered":"<p>Ostatnio dowiedzia\u0142em si\u0119 o bardzo fajnej funkcji jak\u0105 udost\u0119pnia biblioteka standardowa, czyli o funkcji Assert. Funkcja ta ma t\u0119 zalet\u0119, \u017ce warunek, kt\u00f3ry jej przekazujemy jest sprawdzany tylko, gdy jest umie\u015bcimy definicje NDEBUG. Wtedy, gdy warunek zwr\u00f3ci fa\u0142sz, zostaje wy\u015bwietlone okienko, gdzie i kiedy mia\u0142o zdarzenie. W przeciwnym wypadku, gdy nie zdefiniujemy NDEBUG, sprawdzanie warunku po prostu znika, dzi\u0119ki czemu osi\u0105gamy wi\u0119ksz\u0105 wydajno\u015b\u0107.<\/p>\n<p>Oczywi\u015bcie standardowa makrodefinicja nie jest idealna, poniewa\u017c wy\u015bwietla r\u00f3\u017cne rodzaje okienka w zale\u017cno\u015bci od tego, czy u\u017cywamy main czy WinMain. Ale napisanie swojego odpowiednika tej funkcji nie nastr\u0119cza problem\u00f3w, wystarczy si\u0119 przyjrze\u0107 makrodefinicji zawartej w pliku assert.h. Polecam r\u00f3wnie\u017c artyku\u0142 w ksi\u0105\u017cce Pere\u0142ki Programowania Gier cz\u0119\u015b\u0107 pierwsza, rozdzia\u0142 1.12. S\u0105 tam \u015bwietne porady na ten temat.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ostatnio dowiedzia\u0142em si\u0119 o bardzo fajnej funkcji jak\u0105 udost\u0119pnia biblioteka standardowa, czyli o funkcji Assert. Funkcja ta ma t\u0119 zalet\u0119, \u017ce warunek, kt\u00f3ry jej przekazujemy jest sprawdzany tylko, gdy jest umie\u015bcimy definicje NDEBUG. Wtedy, gdy warunek zwr\u00f3ci fa\u0142sz, zostaje wy\u015bwietlone okienko, gdzie i kiedy mia\u0142o zdarzenie. W przeciwnym wypadku, gdy nie zdefiniujemy NDEBUG, sprawdzanie warunku [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[65,179,20],"_links":{"self":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/49"}],"collection":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/comments?post=49"}],"version-history":[{"count":2,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/49\/revisions"}],"predecessor-version":[{"id":813,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/49\/revisions\/813"}],"wp:attachment":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/media?parent=49"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/categories?post=49"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/tags?post=49"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}