[問題] (ptr == NULL) 和 (ptr) 的差別
當測試指標的時候常會使用到例如:
if (ptr != NULL)
{
free(ptr);
ptr == NULL;
}
但是看到一篇文章 Mozilla coding style寫道
https://developer.mozilla.org/En/Mozilla_Coding_Style_Guide
- Don't use NULL for pointers. On some systems it's declared as void * and
causes a compile warning when assigned to a pointer. Use 0 or nsnull
instead.
- When testing a pointer, use !myPtr or (myPtr); don't use myPtr != nsnull or
myPtr == nsnull.
- Do not compare x == PR_TRUE or x == PR_FALSE. Use (x) or (!x) instead. x ==
PR_TRUE, in fact, is different from if (x)!
我看到 void * 想說是否可攜性有關,例如 16bit or 32bit等等,不過又不是很確定,
讓我有些困惑,有人知道為什麼他會這樣寫嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.156.151
→
04/09 01:24, , 1F
04/09 01:24, 1F
→
04/09 01:24, , 2F
04/09 01:24, 2F
→
04/09 01:27, , 3F
04/09 01:27, 3F
→
04/09 01:29, , 4F
04/09 01:29, 4F
→
04/09 01:30, , 5F
04/09 01:30, 5F
→
04/09 01:31, , 6F
04/09 01:31, 6F
→
04/09 01:32, , 7F
04/09 01:32, 7F
→
04/09 01:33, , 8F
04/09 01:33, 8F
推
04/09 01:33, , 9F
04/09 01:33, 9F
→
04/09 01:34, , 10F
04/09 01:34, 10F
→
04/09 01:35, , 11F
04/09 01:35, 11F
→
04/09 01:35, , 12F
04/09 01:35, 12F
推
04/09 01:58, , 13F
04/09 01:58, 13F
→
04/09 01:59, , 14F
04/09 01:59, 14F
→
04/09 12:36, , 15F
04/09 12:36, 15F
推
04/09 19:54, , 16F
04/09 19:54, 16F
→
04/09 19:54, , 17F
04/09 19:54, 17F
→
04/09 19:55, , 18F
04/09 19:55, 18F
→
04/09 20:05, , 19F
04/09 20:05, 19F