看板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"的狂狷不驯;属於年少的轻狂色彩 ◎