看板Programming
標 題Re: [問題] 何時該用assert?
發信站政大狂狷年少 (Tue Oct 17 20:33:42 2006)
轉信站ptt!ctu-reader!ctu-peer!news.nctu!netnews.csie.nctu!news.cs.nthu!WHSHS
※ 引述《[email protected] (=.=)》之銘言:
> 請教各位寫C/C++ 都何時使用assert()呢?
> 我個人覺得每個assert都可用 if 或 exception 來取代之
> 但有些人似乎很愛用assert
> 不知道各位都何時用assert何時用if或exception呢? 謝謝
assert 通常是用 macro 實作的,
而且屬於條件式編譯,
所以在編譯時加上 -DNDEBUG 參數,
或是在檔案裡明確 #define NDEBUG,
所有的 assert() 就不會被編進目的碼和執行檔裡,
程式執行時也比較快。
不過在 C++ 可以使用比較進階的 template 技術來取代 assert(),
所以不建議在 C++ 程式裡使用 assert()。
--
Name: Tseng, Ling-hua E-mail Address:
[email protected]
School: National Tsing Hua University Department: Computer Science
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Undecided
Homepage:
https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │
* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮
< IP:140.119.164.252 > ╰─╮
╚╦═╦╝ ╰
* From:61-230-216-250.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎